使用 Python 中的 NumPy 陣列進行廣播


我們知道,不同陣列之間的算術運算通常在陣列具有相等的尺寸或者需要特定尺寸時發生。但在某些情況下,我們可以刪除不等的尺寸並對其應用算術運算,方法是透過在陣列的形狀中填充帶有較小 ndim 的陣列,並在其形狀中填充前置的“1”。因此,基本上廣播和陣列意味著將其形狀更改為任何所需的形狀。

陣列廣播的規則

  • 具有比另一個數組較小 ndim 的陣列在其形狀中前置“1”。

  • 輸出形狀的每個維度中的尺寸是該維度中輸入尺寸的最大值。

  • 如果輸入的尺寸與輸出尺寸匹配或其值恰好為 1,則可以使用輸入進行計算。

  • 如果輸入的尺寸為 1,則該維度中的第一個資料項用於沿該維度進行的所有計算。

示例

下面的示例演示瞭如何使用 numpy 陣列在陣列操作期間進行廣播。

 即時演示

import numpy as np
a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]])
b = np.array([1.0,2.0,3.0])

print 'First array:'
print a
print '\n'

print 'Second array:'
print b
print '\n'

print 'First Array + Second Array'
print a + b

輸出

執行上面的程式碼會產生以下結果 -

First array:
[
   [ 0. 0. 0.]
   [ 10. 10. 10.]
   [ 20. 20. 20.]
   [ 30. 30. 30.]
]

Second array:
[ 1. 2. 3.]

First Array + Second Array
[
   [ 1. 2. 3.]
   [ 11. 12. 13.]
   [ 21. 22. 23.]
   [ 31. 32. 33.]
]

更新日期:2020 年 7 月 22 日

159 次瀏覽

開啟您的職業生涯

完成此課程以獲得認證

開始
廣告
© . All rights reserved.