python中numpy数组运算

python中的广播原则:

如果两个数组的后缘维度(即从末尾开始算起的维度)的轴长度相符或其中一方的长度为1,则认为他们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。
按照我的理解,当一个数组的形状和另一个数组是“相似”的时候,运算可以进行。我把相似这么理解:指的是保持形状不变的情况下,两个数组的同边相等,例如一个2维的43的数组和一个1维的13是可以进行运算的:

 t1 = np.arange(12).reshape(4,3)
 结果:
 array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
 t2 = np.arange(3)
 array([0, 1, 2])
 t1-t2
 array([[0, 0, 0],
       [3, 3, 3],
       [6, 6, 6],
       [9, 9, 9]])

但是一个2维的4x3的数组和一个1维的1x4是无法运算的,因为前者是4行3列,后者是1行4列,如果要运算就要把后者转置变成4行1列,“单位”相同才能进行运算,所以同边的意思是这样的。
为了以后更方便自己记住这个知识点,可以采用shape函数来观察数组的形状,例如shape(3,3,2)的数组和shape(3,2)的是可以进行运算的,但是shape(3,3,3)和shape(3,2)是不能进行运算的,因为从后往前算有相同的轴长(3,2),而后者没有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值