文章目錄
- 前言
- 數組廣播
- 廣播機制的使用條件
前言
Numpy數組不需要循環遍歷,即可對每個元素執行批量的算術運算操作(矢量化運算)。當兩個數組大小(Numpy.shape)不同時,進行算術運算會出現廣播機制。
數組廣播
數組在進行矢量化運算的時,要求數組形狀時相等的。當形狀不等的數組執行算術運算的時候,就會出現廣播機制,該機制會對數組進行擴展,使數組的shape屬性值一樣,就可以進行矢量化運算了。
import numpy as np
arr1 = np.array([[0], [1], [2], [3]])
print(arr1.shape)
arr2 = np.array([1, 2, 3])
print(arr2.shape)
val = arr2+arr1
print(val)
輸出結果
(4, 1) //arr1的shape
(3,) //arr2的shape
[[1 2 3]
[2 3 4]
[3 4 5]
[4 5 6]]
由于arr1和arr2的shape不等,故通過廣播機制進行如下圖的擴展
廣播機制的使用條件
1、數組的某一維度等長
2、其中一個數組的某一維度為1