numpy广播

(m,n)   +,-,*,/  (m,1)

先将(m,1)复制n次,构成(m,n)矩阵,然后再进行+,-,*,/运算

(m,n)   +,-,*,/  (1,n)

先将 (1,n)复制m次,构成(m,n)矩阵,然后再进行+,-,*,/运算

(m,1)  +,-,*,/   real(一个实数)

先将实数复制m次,构成(m,1) 矩阵,然后再进行+,-,*,/运算

(1,n) +,-,*,/   real(一个实数)

先将实数复制n次,构成(1,n)矩阵,然后再进行+,-,*,/运算

demo1

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]])
print(A)

# 每列求和

cal=A.sum(axis=0)  # axis=0:垂直方向(求和)

                               # axis=1:水平方向(求和)
print(cal)

percentage=100*A/cal.reshape(1,4)      # 这里,reshape(1,4)其实可以不必使用;但使用可以确保矩阵(向量)的维数是我们想要的大小

           # A是一个3*4的矩阵,而cal是一个1*4的矩阵,这里,用到了广播
print(percentage)

demo2

# logistic regression中,前向传播

z(i)=wT*x(i)+b

Z=wT*X+b    # b也是一个广播

原文地址:https://www.cnblogs.com/ceceliahappycoding/p/8253086.html