NumPy 1.8.1 發行說明#

這是 1.8.x 系列中的僅錯誤修正版本。

已修正問題#

  • gh-4276: 修正物件陣列的 mean、var、std 方法

  • gh-4262: 移除不安全的 mktemp 用法

  • gh-2385: absolute(complex(inf)) 在 python3 中引發 invalid 警告

  • gh-4024: 序列賦值在形狀不符時未引發例外

  • gh-4027: 修正區塊讀取長度超過 BUFFERSIZE 的字串

  • gh-4109: 修正 0 維陣列索引的物件純量回傳類型

  • gh-4018: 修正 ufuncs 中遺失的記憶體配置失敗檢查

  • gh-4156: 高階 linalg.norm 捨棄複數陣列的虛部元素

  • gh-4144: linalg: norm 在 longdouble、signed int 上失敗

  • gh-4094: 修正 _strided_to_strided_string_to_datetime 中的 NaT 處理

  • gh-4051: 修正 _strided_to_strided_string_to_datetime 中未初始化的使用

  • gh-4093: 在 Python 2.6.6 下載入壓縮的 .npz 檔案失敗

  • gh-4138: 在 python 3.4 中使用非原生位元組序 memoryview 造成區段錯誤

  • gh-4123: 修正 lexsort 中遺失的 NULL 檢查

  • gh-4170: 修正 memoryviews 中僅限原生的 long long 檢查

  • gh-4187: 修正 32 位元上的大型檔案支援

  • gh-4152: fromfile: 確保 python3 中檔案控制代碼位置同步

  • gh-4176: clang 相容性:conversion_utils 中的錯字

  • gh-4223: 提取非整數項目導致陣列回傳

  • gh-4197: 修正 memoryview 失敗案例中的輕微記憶體洩漏

  • gh-4206: 修正使用單執行緒 python 的建置

  • gh-4220: 將 versionadded:: 1.8.0 新增至 ufunc.at 文件字串

  • gh-4267: 改善記憶體配置失敗的處理

  • gh-4267: 修正 ufunc.at 中未使用 gil 的 capi 用法

  • gh-4261: 偵測 GNU 編譯器的供應商版本

  • gh-4253: IRR 回傳 nan 而非有效的負值答案

  • gh-4254: 修正位元組陣列不必要的位元組順序旗標變更

  • gh-3263: numpy.random.shuffle 覆蓋 MaskedArray 的遮罩

  • gh-4270: np.random.shuffle 無法與彈性 dtype 運作

  • gh-3173: 隨機多項式 'size' 引數的區段錯誤

  • gh-2799: 允許 unique 與複數列表一起使用

  • gh-3504: 修正整數陣列純量的 linspace 截斷

  • gh-4191: get_info('openblas') 未讀取 libraries 鍵

  • gh-3348: _descriptor_from_pep3118_format 中的存取違規

  • gh-3175: 從 bytearray 使用 numpy.array() 造成區段錯誤

  • gh-4266: histogramdd - 非常接近最後邊界的條目結果錯誤

  • gh-4408: 修正物件陣列的 stride_stricks.as_strided 函數

  • gh-4225: 修正 windows 編譯器建置中 np.inf 的 log1p 和 exmp1 回傳

  • gh-4359: 修正彈性陣列 str.format 中的無限遞迴

  • gh-4145: 指數運算子廣播結果的形狀不正確

  • gh-4483: 修正 {dot,multiply,inner}(純量, 物件矩陣) 的交換性

  • gh-4466: 當大小可能變更時,延遲 npyiter 大小檢查

  • gh-4485: 緩衝步幅被錯誤地標記為固定

  • gh-4354: byte_bounds 在 datetime dtype 上失敗

  • gh-4486: 轉換高精度 datetime64 物件時發生區段錯誤/錯誤

  • gh-4428: einsum(None, None, None, None) 造成區段錯誤

  • gh-4134: 大小為 1 的物件縮減未初始化的使用

變更#

NDIter#

當現在呼叫 NpyIter_RemoveAxis 時,迭代器範圍將會重設。

當追蹤多重索引且迭代器未緩衝時,可以使用 NpyIter_RemoveAxis。 在此情況下,迭代器的大小可能會縮小。 由於迭代器的總大小有限,因此在這些呼叫之前,迭代器可能太大。 在這種情況下,其大小將設定為 -1,並且在移除多重索引、設定迭代器範圍或取得下一個函數時,而非在建構時發出錯誤。

這對目前運作中的程式碼沒有影響,但突顯了在可能發生這些情況時檢查錯誤回傳的必要性。 在大多數情況下,迭代的陣列與迭代器一樣大,因此不會發生此類問題。

np.distutils 的可選減少詳細程度#

設定 numpy.distutils.system_info.system_info.verbosity = 0,然後呼叫 numpy.distutils.system_info.get_info('blas_opt') 將不會在輸出上印出任何內容。 這主要是為了其他使用 numpy.distutils 的套件。

棄用#

C-API#

公用程式函數 npy_PyFile_Dup 和 npy_PyFile_DupClose 因 python 3 套用至其檔案物件的內部緩衝而損壞。 為了修正此問題,在 npy_3kcompat.h 中宣告了兩個新函數 npy_PyFile_Dup2 和 npy_PyFile_DupClose2,並且棄用了舊函數。 由於這些函數的脆弱性,建議盡可能使用 python API。