NumPy-如何广播不同形状的数组

时间:2018-11-19 21:15:48

标签: numpy numpy-broadcasting numpy-ndarray

我有一个200 x 200的向量数组。其形状为(200, 200, 3)

我也有22个向量的数组。其形状为(22,3)

我想从第一个数组中的每个向量中减去第二个数组中的所有22个向量。输出应具有形状(200, 200, 22, 3)

我想执行

之类的操作
first - second

但是我得到了错误

*** ValueError: operands could not be broadcast together with shapes (200,200,3) (22,3)

我认为我需要以某种方式填充第一个数组,以允许NumPy一起广播数组。我如何告诉NumPy如何进行广播?

1 个答案:

答案 0 :(得分:0)

第一个数组:200 X 200 X 3 第二个数组:22 X 3

在这种情况下,您对此执行的任何算术运算都将导致(200, 200, 3)

如果尝试以下操作,可能会收到错误消息:2nd Array - 1st Array

您可以查看以下内容:https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html