NumPy 1.6.0 發行說明#

此版本包含數個新功能,以及大量的錯誤修正和改進的文件。它與 1.5.0 版本向後相容,並支援 Python 2.4 - 2.7 和 3.1 - 3.2。

重點#

  • 重新引入 datetime dtype 支援以處理陣列中的日期。

  • 新的 16 位元浮點類型。

  • 新的迭代器,可提高許多函式的效能。

新功能#

新的 16 位元浮點類型#

此版本新增了對 IEEE 754-2008 binary16 格式的支援,以 numpy.half 資料類型提供。在 Python 中,此類型的行為類似於 floatdouble,並且 C 擴充功能可以使用公開的半精度浮點數 API 來新增對它的支援。

新的迭代器#

新增了一個新的迭代器,用單一物件和 API 取代了現有的迭代器和多重迭代器的功能。此迭代器適用於與 C 或 Fortran 連續記憶體佈局不同的通用記憶體佈局,並處理標準 NumPy 和自訂廣播。由 ufuncs 提供但難以在其他地方複製的緩衝、自動資料類型轉換和可選輸出參數,現在由此迭代器公開。

numpy.polynomial 中的 Legendre、Laguerre、Hermite、HermiteE 多項式#

擴展 polynomial 套件中可用的多項式數量。此外,已將新的 window 屬性新增至類別中,以指定 domain 對應到的範圍。這對於自然域為無限的 Laguerre、Hermite 和 HermiteE 多項式最有用,並提供更直覺的方式來取得值的正確對應,而無需對域進行不自然的技巧。

numpy.f2py 中的 Fortran 假設形狀陣列和 size 函式支援#

F2py 現在支援封裝使用假設形狀陣列的 Fortran 90 常式。在之前,可以從 Python 呼叫此類常式,但相應的 Fortran 常式接收到的假設形狀陣列為零長度陣列,這導致了無法預測的結果。感謝 Lorenz Hüdepohl 指出使用假設形狀陣列介接常式的正確方法。

此外,f2py 現在支援自動封裝在維度規格中使用雙參數 size 函式的 Fortran 常式。

其他新函式#

numpy.ravel_multi_index : 將多重索引元組轉換為扁平索引陣列,並將邊界模式應用於索引。

numpy.einsum : 評估愛因斯坦求和約定。使用愛因斯坦求和約定,許多常見的多維陣列運算可以用簡單的方式表示。此函式提供了一種計算此類求和的方法。

numpy.count_nonzero : 計算陣列中非零元素的數量。

numpy.result_typenumpy.min_scalar_type : 這些函式公開了 ufuncs 和其他運算使用的底層類型提升,以確定輸出的類型。這些函式改進了 numpy.common_typenumpy.mintypecode,它們提供類似的功能,但不符合 ufunc 實作。

變更#

預設 錯誤 處理#

預設錯誤處理已從 print 變更為 warn,除了 underflow 之外,後者仍為 ignore

numpy.distutils#

現在支援多個新的編譯器來建置 Numpy:OS X 上的 Portland Group Fortran 編譯器、PathScale 編譯器套件和 Linux 上的 64 位元 Intel C 編譯器。

numpy.testing#

測試框架獲得了 numpy.testing.assert_allclose,與 assert_almost_equalassert_approx_equalassert_array_almost_equal 相比,它提供了一種更方便的方式來比較浮點陣列。

C API#

除了新迭代器和半精度資料類型的 API 之外,還對 C API 進行了許多其他新增。ufuncs 使用的類型提升機制透過 PyArray_PromoteTypesPyArray_ResultTypePyArray_MinScalarType 公開。新增了一個新的列舉 NPY_CASTING,用於控制允許的轉換類型。新的函式 PyArray_CanCastArrayToPyArray_CanCastTypeTo 使用了它。更彈性地處理將任意 python 物件轉換為陣列的方式由 PyArray_GetArrayParamsFromObject 公開。

已棄用的功能#

numpy.histogram 中的 “normed” 關鍵字已棄用。其功能將被新的 “density” 關鍵字取代。

已移除的功能#

numpy.fft#

已移除函式 refftrefft2refftnirefftirefft2irefftn,它們是名稱中沒有 ‘e’ 的相同函式的別名。

numpy.memmap#

已移除 memmap 的 sync()close() 方法。請改用 flush() 和 “del memmap”。

numpy.lib#

已移除已棄用的函式 numpy.unique1dnumpy.setmember1dnumpy.intersect1d_nunumpy.lib.ufunclike.log2

numpy.ma#

已從 numpy.ma 模組中移除數個已棄用的項目

* ``numpy.ma.MaskedArray`` "raw_data" method
* ``numpy.ma.MaskedArray`` constructor "flag" keyword
* ``numpy.ma.make_mask`` "flag" keyword
* ``numpy.ma.allclose`` "fill_value" keyword

numpy.distutils#

已移除 numpy.get_numpy_include 函式,請改用 numpy.get_include