NumPy 1.20.0 版本上線,最新亮點(diǎn)包括 NumPy 函數(shù)注釋、為數(shù)組提供滑動(dòng)窗口視圖等。
作為 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),NumPy 支持大量的維度數(shù)組與矩陣運(yùn)算,也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)。自初代版本上線之后,NumPy 已經(jīng)成為 Python 科學(xué)計(jì)算的擴(kuò)展包。如今,在計(jì)算多維數(shù)組和大型數(shù)組方面,它是使用最廣的。此外,它還提供多個(gè)函數(shù),操作起數(shù)組來(lái)效率很高,還可用來(lái)實(shí)現(xiàn)高級(jí)數(shù)學(xué)運(yùn)算。
近日,NumPy 迎來(lái)了更新。NumPy 官方表示,NumPy v1.20 是迄今為止規(guī)模最大的版本更新 ,共計(jì) 184 位開(kāi)發(fā)者貢獻(xiàn)了約 684 條 PR,新增了類型注釋、滑動(dòng)窗口視圖等功能。
新版本支持 Python 3.7-3.9,但不支持 Python 3.6。主要亮點(diǎn)如下:NumPy 函數(shù)注釋;
擴(kuò)大 SIMD 使用范圍,提升 ufuncs(Universal Functions)的執(zhí)行速度;
更改數(shù)據(jù)類型和強(qiáng)制轉(zhuǎn)換實(shí)現(xiàn)的準(zhǔn)備工作,以便為擴(kuò)展數(shù)據(jù)類型提供更簡(jiǎn)單的途徑;
文檔改進(jìn),包括大約 185 個(gè) PR 合并;
關(guān)于移除 Python 2.7 的進(jìn)一步清理(cleanups), 這樣可以提高代碼的可讀性并消除技術(shù)負(fù)擔(dān);
對(duì)即將到來(lái)的 Cython 3.0 提供初步支持。
新發(fā)布的 NumPy 1.20.0 版本包括以下三大新函數(shù):(1)random.Generator 類有一個(gè)新函數(shù) permuted。新函數(shù)與 shuffle 和 permutation 不同,給定軸索引的子數(shù)組會(huì)被換算。例如,現(xiàn)在可以對(duì)一個(gè)二維數(shù)組的行或列進(jìn)行換算;(2)sliding_window_view 為 numpy 數(shù)組提供了一個(gè)滑動(dòng)窗口視圖。numpy.lib.stride_tricks.sliding_window_view 在 numpy 數(shù)組上構(gòu)造視圖,提供對(duì)數(shù)組的滑動(dòng)或移動(dòng)窗口訪問(wèn)。這使得 running means 等某些算法可以簡(jiǎn)單實(shí)現(xiàn)。>>>?x?=?np.arange(6)
*>>>*?**?x.shape
(6,)
*>>>*?**?v?=?sliding_window_view(x,?3)
*>>>*?**?v.shape
(4,?3)
*>>>*?**?v
array([[0,?1,?2],??????
???????[1,?2,?3],??????
???????[2,?3,?4],???????
???????[3,?4,?5]])
(3)一個(gè)面向用戶(user-facing)的全新函數(shù) numpy.broadcast_shapes。該函數(shù)可以從給定形狀元組中通過(guò) broadcasting 獲得形狀,其中 broadcasting 機(jī)制的功能是為了方便不同 shape 的 array 進(jìn)行數(shù)學(xué)運(yùn)算。*>>>*?np.broadcast_shapes((1,?2),?(3,?1))
(3,?2)
*>>>*?np.broadcast_shapes(2,?(3,?1))
(3,?2)
*>>>*?np.broadcast_shapes((6,?7),?(5,?6,?1),?(7,),?(5,?1,?7))
(5,?6,?7)
像 np.int 這類內(nèi)置類型(builtin type)的別名已被棄用。在很長(zhǎng)一段時(shí)間,np.int 是 int 的別名,但常常對(duì)新手造成困擾,這主要是歷史原因造成的。下表顯示了已棄用別名的完整列表,其中第三列為備用 NumPy 名稱。
此外,將 shape=None 傳遞給帶有非可選參數(shù) shape 的函數(shù)已被棄用,mode 和 searchside 的非精確匹配、numpy.dual 模塊也都被棄用。更多更新內(nèi)容請(qǐng)參考:https://numpy.org/doc/1.20/release/1.20.0-notes.html#deprecations
往期精彩:
?機(jī)器學(xué)習(xí)實(shí)驗(yàn)室的一點(diǎn)年度小結(jié)
【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf
【原創(chuàng)首發(fā)】深度學(xué)習(xí)語(yǔ)義分割理論與實(shí)戰(zhàn)指南.pdf
?談中小企業(yè)算法崗面試
?算法工程師研發(fā)技能表
?真正想做算法的,不要害怕內(nèi)卷
?技術(shù)學(xué)習(xí)不能眼高手低
?技術(shù)人要學(xué)會(huì)自我營(yíng)銷
?做人不能過(guò)擬合
點(diǎn)個(gè)在看