NumPy 1.16.1 發行說明#

NumPy 1.16.1 版本修正了針對 1.16.0 版本回報的錯誤,並且也從主分支反向移植了一些增強功能,這些功能似乎適用於最後一個支援 Python 2.7 的發行系列。PyPI 上的 wheels 連結到 OpenBLAS v0.3.4+,這應該可以修正先前 OpenBLAS 版本中發現的已知執行緒問題。

建置此版本的下游開發者應使用 Cython >= 0.29.2,如果使用 OpenBLAS,則應使用 OpenBLAS > v0.3.4。

如果您使用 pip 安裝,您可能會遇到舊版 NumPy 安裝版本的問題,pip 並未刪除這些版本,導致與目前版本混合,進而造成 ImportError。在 Debian 衍生發行版上,由於修改過的 pip,這個問題尤其常見。解決方法是確保已移除所有先前由 pip 安裝的 NumPy 版本。請參閱 #12736 以討論此問題。請注意,先前此問題導致 AttributeError

貢獻者#

總共有 16 人為此版本做出貢獻。姓名旁有「+」號的人是首次貢獻 patch。

  • Antoine Pitrou

  • Arcesio Castaneda Medina +

  • Charles Harris

  • Chris Markiewicz +

  • Christoph Gohlke

  • Christopher J. Markiewicz +

  • Daniel Hrisca +

  • EelcoPeacs +

  • Eric Wieser

  • Kevin Sheppard

  • Matti Picus

  • OBATA Akio +

  • Ralf Gommers

  • Sebastian Berg

  • Stephan Hoyer

  • Tyler Reddy

增強功能#

  • #12767: ENH: 新增 mm->q floordiv

  • #12768: ENH: 將 np.core.overrides 移植到 C 以提高速度

  • #12769: ENH: 新增 np.ctypeslib.as_ctypes_type(dtype),改進 np.ctypeslib.as_ctypes

  • #12773: ENH: 在 np.testing.assert_array_equal… 中新增「最大差異」訊息

  • #12820: ENH: 新增 mm->qm divmod

  • #12890: ENH: 為凍結分析新增 _dtype_ctype 到命名空間

相容性注意事項#

  • 陣列比較測試函數發出的已變更錯誤訊息可能會影響 doctest。詳情請見下文。

  • 已修正從 double 和 single denormals 轉換為 float16 的問題。在某些罕見情況下,這可能會導致結果向上捨入而不是向下捨入,從而變更結果的最後一個位元 (ULP)。

新功能#

現在支援兩個 timedelta64 運算元的 divmod 運算#

divmod 運算子現在處理兩個 np.timedelta64 運算元,類型簽名為 mm->qm

改進#

進一步改進 np.ctypeslib 中的 ctypes 支援#

新增了 numpy.ctypeslib.as_ctypes_type 函數,可用於將 dtype 轉換為最佳猜測的 ctypes 類型。由於這個新函數,numpy.ctypeslib.as_ctypes 現在支援更廣泛的陣列類型,包括結構、布林值和非原生位元組序的整數。

陣列比較斷言包含最大差異#

來自陣列比較測試(例如 np.testing.assert_allclose)的錯誤訊息現在包含「最大絕對差異」和「最大相對差異」,以及先前的「不符」百分比。此資訊更容易更新絕對和相對誤差容忍度。

變更#

timedelta64 % 0 行為調整為傳回 NaT#

兩個 np.timedelta64 運算元的模數運算現在在除以零的情況下傳回 NaT,而不是傳回零