1.何為廣播機(jī)制
不規(guī)則數(shù)組相加機(jī)制
x_02 = np.array([1, 2, 3, 4])
x_02+1 # array([2, 3, 4, 5])
x_01=np.array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
x_02 = np.array([1, 2, 3, 4])
#輸出
array([[ 1, 3, 5, 7],
[ 5, 7, 9, 11],
[ 9, 11, 13, 15]])
2. 三種廣播規(guī)則
規(guī)則1:如果兩個(gè)數(shù)組形狀中,只有其中一個(gè)維度相同湾笛,另一個(gè)維度不一致,但是其中一個(gè)數(shù)組有維度為1,則可以補(bǔ)齊:
規(guī)則1
np.arange(3)+5
#array([5, 6, 7])
規(guī)則1
規(guī)則2:如果兩個(gè)數(shù)組的形狀在任何一個(gè)維度都不匹配丸冕,但兩個(gè)數(shù)組都有其中以維度為1,則數(shù)組的形狀會(huì)沿著維度為1的維度擴(kuò)展薛窥,以匹配另外一個(gè)數(shù)組形狀胖烛。**
規(guī)則2
np.ones((1,3))+np.ones((2,1))
#array([[2., 2., 2.],
# [2., 2., 2.]])
規(guī)則3:如果兩個(gè)數(shù)組的形狀在任何一個(gè)維度上都不匹配并且沒有任何一個(gè)維度等于1,會(huì)廣播錯(cuò)誤诅迷。
>>> np.ones((3,3))+np.ones((2,3))
輸出:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-6-6f99938fd268> in <module>
----> 1 np.ones((3,3))+np.ones((2,3))
ValueError: operands could not be broadcast together with shapes (3,3) (2,3)