1.7 Numpy的广播机制

1.7 Numpy的广播机制

Numpy的ufunc中要求输入的数组shape是一致的,当数组的shape不相等时,则会使用广播机制。不过运用广播机制需要满足一定的的规则,否则将会出错。规则如下:
1)让所有输入数组都像其中shape最长的数组看齐,不足的部分则通过在前面加1补齐;
2)输出数组的shaoe是输入数组shape的各个轴上的最大值;
3)如果输入数组的某个轴和输出数组的对应轴的长度相同或者某个轴的长度为1时,这个数组能被用来计算,否则出错;
4)当输入数组的某个轴的长度为1时,沿着此轴运算时都用(或复制)此轴上的第一组值。

广播机制在整个Numpy中用于决定如何处理形状迥异的数组。

import numpy as np
a = np.arange(0, 40, 10).reshape((4, 1))
b = np.arange(3)
print("a矩阵的形状:{}, b矩阵的形状:{}".format(a.shape, b.shape))
# 根据规则1,b要向a看齐,b变成(1, 3)
# 根据规则2,输出数组的形状为输入数组形状的各个轴上的最大值,所以c.shape为(4, 3)
# 根据规则4,我们要把a和b都要扩展为(4, 3)
c = a + b
print("c矩阵的形状:{}".format(c.shape))
print("c矩阵的值:\n{}".format(c))

输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值