Numpy广播。如何使用np.broadcast()方法

648 阅读2分钟

Numpy Broadcasting - How to Use np.broadcast() Method

在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上。