NumPy新增函數注釋等功能,支持Python 3.7+
作為 Python 語言的一個擴展程序庫,NumPy 支持大量的維度數組與矩陣運算,也針對數組運算提供大量的數學函數庫。自初代版本上線之后,NumPy 已經成為 Python 科學計算的擴展包。如今,在計算多維數組和大型數組方面,它是使用最廣的。此外,它還提供多個函數,操作起數組來效率很高,還可用來實現高級數學運算。

近日,NumPy 迎來了更新。NumPy 官方表示,NumPy v1.20 是迄今為止規模最大的版本更新 ,共計 184 位開發者貢獻了約 684 條 PR,新增了類型注釋、滑動窗口視圖等功能。

新版本支持 Python 3.7-3.9,但不支持 Python 3.6。主要亮點如下:
NumPy 函數注釋;
擴大 SIMD 使用范圍,提升 ufuncs(Universal Functions)的執行速度;
更改數據類型和強制轉換實現的準備工作,以便為擴展數據類型提供更簡單的途徑;
文檔改進,包括大約 185 個 PR 合并;
關于移除 Python 2.7 的進一步清理(cleanups), 這樣可以提高代碼的可讀性并消除技術負擔;
對即將到來的 Cython 3.0 提供初步支持。
上線新函數
新發布的 NumPy 1.20.0 版本包括以下三大新函數:
(1)random.Generator 類有一個新函數 permuted。新函數與 shuffle 和 permutation 不同,給定軸索引的子數組會被換算。例如,現在可以對一個二維數組的行或列進行換算;
(3)一個面向用戶(user-facing)的全新函數 numpy.broadcast_shapes。該函數可以從給定形狀元組中通過 broadcasting 獲得形狀,其中 broadcasting 機制的功能是為了方便不同 shape 的 array 進行數學運算。
棄用的功能
像 np.int 這類內置類型(builtin type)的別名已被棄用。在很長一段時間,np.int 是 int 的別名,但常常對新手造成困擾,這主要是歷史原因造成的。
下表顯示了已棄用別名的完整列表,其中第三列為備用 NumPy 名稱。

此外,將 shape=None 傳遞給帶有非可選參數 shape 的函數已被棄用,mode 和 searchside 的非精確匹配、numpy.dual 模塊也都被棄用。
更多更新內容請參考:https://numpy.org/doc/1.20/release/1.20.0-notes.html#deprecations