python中broadcast機制非常實用,在python中的廣播機制其實很簡單,我們看兩個例子。
#eg.1
import numpy as np A=np.array([[56.0,0.0,4.4,68.0], [1.2,104.0,52.0,8.0], [1.8,135.0,99.0,0.9]]) cal=np.sum(A,axis=0) percentage=100*A/cal.reshape(1,4) #reshape保證行狀,開支小
我們可以看到 A的維度是(3,4),cal的維度是(1,4),即python在此處將cal復制了3次,將cal擴展為(3,4),即cal‘=np.array([[59. , 239. , 155.4, 76.9],
[59. , 239. , 155.4, 76.9],
[59. , 239. , 155.4, 76.9]])
#eg.2
B=np.array([1,2,3,4]).reshape(4,1)
c=100
res=B+100
即(4,1)+(1,1),python這里會將(1,1)擴展為(4,1)