溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

numpy中數(shù)組廣播機(jī)制的示例分析

發(fā)布時間:2021-08-21 14:13:07 來源:億速云 閱讀:164 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“numpy中數(shù)組廣播機(jī)制的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“numpy中數(shù)組廣播機(jī)制的示例分析”這篇文章吧。

numpy數(shù)組的廣播功能強(qiáng)大,但是也同時讓人疑惑不解,現(xiàn)在讓我們來談?wù)勂渲械脑怼?/p>

廣播原則:

如果兩個數(shù)組的后緣維度(即:從末尾開始算起的維度)的軸長相符或其中一方的長度為1,則認(rèn)為它們是廣播兼容的,廣播會在缺失和(或)長度為1的軸上進(jìn)行.

上面的原則很重要,是廣播的指導(dǎo)思想,下面我們來看看例子。

1.其實(shí)在最簡單的數(shù)組與標(biāo)量數(shù)字之間的運(yùn)算就存在廣播,只是我們把它看作理所當(dāng)然了。

numpy中數(shù)組廣播機(jī)制的示例分析

2.再看下一個例子,這個大家都會一致認(rèn)為這是廣播了

numpy中數(shù)組廣播機(jī)制的示例分析

根據(jù)廣播原則:arr1的shape為(4,1),arr2的shape為(3,),所以會同時在兩個軸發(fā)生廣播,arr1的shape變成(4,3),而arr2的shape變成(4,3),所以結(jié)果也為(4,3).

其實(shí)代碼中發(fā)生了下圖描述的事情:

numpy中數(shù)組廣播機(jī)制的示例分析

3.同理,我們可以得到三維數(shù)組的廣播情況

numpy中數(shù)組廣播機(jī)制的示例分析

根據(jù)廣播原則分析:arr1的shape為(3,4,2),arr2的shape為(4,2),它們的后緣軸長度都為(4,2),所以可以在0軸進(jìn)行廣播,arr2的shape變?yōu)?3,4,2).

下面說明一下三維數(shù)組在各維度的廣播形狀需求:

numpy中數(shù)組廣播機(jī)制的示例分析

以上所有形狀都可以發(fā)生廣播,你可以用我們開篇所說的廣播原則進(jìn)行驗(yàn)證。

最后,再來說一個易錯的實(shí)際例子。

numpy中數(shù)組廣播機(jī)制的示例分析

arr減去他在1軸上的平均值,會出錯?看看為啥。

因?yàn)閍rr.mean(1)產(chǎn)生的shape為(4,),根據(jù)廣播原則,較小的數(shù)組的后緣維度必須為1,

所以需要將arr.mean變成(4,1),你所期望的結(jié)果如下:

numpy中數(shù)組廣播機(jī)制的示例分析

以上是“numpy中數(shù)組廣播機(jī)制的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI