在Python数组中的广播是指numpy在整个算术运算中如何处理不同维度的数组,它指向某些约束。例如,越短的Array被广播过,越大的Array要有兼容的形状。
Numpy广播
**numpy.****broadcast()**方法产生一个模拟广播的对象。np.broadcast()方法接受类似array_的参数,将输入的参数相互广播,并返回一个封装了结果的对象。
广播是numpy用来实现不同形状或大小的数组之间的数组运算的方法的名称。不同大小的数组不能被计算。
语法
numpy.broadcast(in1, in2, ...)
参数
in1, in2 是输入参数。
返回值
np.broadcast()方法将输入参数相互广播,并返回一个封装了结果的对象。
例子
让我们在Python中使用numpy广播手动添加两个向量。
import numpy as np
x = np.array([1,2,3,4])
y = np.array([10,20,30,40])
a = np.broadcast(x, y)
op = np.empty(a.shape)
op.flat = [u+v for (u,v) in a]
print(op)
输出
[11. 22. 33. 44.]
让我们把它与内置广播进行比较。
import numpy as np
x = np.array([1,2,3,4])
y = np.array([10,20,30,40])
op = x + y
print(op)
输出结果
[11 22 33 44]
标量和二维数组
标量值可以用于二维数组的运算。例如,我们可以将一个二维数组 "X "的2行和3列加到标量 "Y "上进行可视化。
import numpy as np
x = np.array([[1,2,3,4], [10,20,30,40]])
y = np.array([[100,200,300,400], [500, 600, 700, 800]])
op = x + y
print(op)
输出
[[101 202 303 404]
[510 620 730 840]]
运行这个例子可以打印出两个二维数组相加的结果。
一维数组和二维数组
你可以使用一维数组与二维数组。
import numpy as np
x = np.array([[1,2,3,4], [10,20,30,40]])
y = np.array([100,200,300,400])
op = x + y
print(op)
输出结果
[[101 202 303 404]
[110 220 330 440]]
总结
广播是一种方便的方式,在某些实践中证明在使用Numpy数组时非常有用,但是,它并不是对所有的情况都有效,事实上,它施加了一个严格的规则,必须满足广播才能进行。
本教程到此为止。
The postNumpy Broadcasting:如何使用np.broadcast()方法》首次出现在AppDividend上。