天天看點

【Numpy總結】第五節:Numpy的廣播(更易了解的版本)

Numpy的廣播的三種情況

廣播(Broadcast)是 numpy 對不同形狀(shape)的數組進行數值計算的方式,當運算中的 2 個數組的形狀不同時,numpy 将自動觸發廣播機制;即:可擴充較小數組中的元素來适配較大數組的形狀,這種機制叫作廣播(broadcasting)

廣播機制如下,一共三種情況:由于日常應用中最常見的隻有一維數組與二維數組,是以就不舉三維及以上數組的例子了;這樣更容易了解;

1. 有一個數組是一個數字,即可廣播;

a = np.arange(3)
b = 5
print(a+b)
# 輸出為:[5 6 7]
           

2. 次元的尾部一緻,即可廣播;

a = np.arange(12).reshape(3,4)
b= np.arange(4)
print(a)   
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
print(b)
# [0 1 2 3]
print(a+b)
# [[ 0  2  4  6]
#  [ 4  6  8 10]
#  [ 8 10 12 14]]
           

3. 兩個數組均為一維數組,一個為行方向,一個為列方向,即可廣播;

a = np.arange(3).reshape(3,1)
b= np.arange(3)
print(a)
# [[0]
#  [1]
#  [2]]
print(b)
# [0 1 2]
print(a+b)
# [[0 1 2]
#  [1 2 3]
#  [2 3 4]]