Numpy ValueError:操作数无法与形状一起广播(512512)(515512)

Numpy ValueError:操作数无法与形状一起广播(512512)(515512),numpy,Numpy,我想在均匀矩阵中添加噪声,我使用的代码如下: import numpy as np s = np.random.default_rng(100).normal(10,5,512*512) s2 = np.reshape(s, (512,512)) s2 =s2+11*np.ones((515,512)) 它给出了以下错误: ValueError: operands could not be broadcast together with shapes (512,512) (515,512

我想在均匀矩阵中添加噪声,我使用的代码如下:

import numpy as np 

s = np.random.default_rng(100).normal(10,5,512*512)

s2 = np.reshape(s, (512,512))
s2 =s2+11*np.ones((515,512))
它给出了以下错误:

ValueError: operands could not be broadcast together with shapes (512,512) (515,512) 

这里的问题在哪里?

在两个阵列上操作时,NumPy会按元素比较它们的形状。它从后面的维度开始,然后继续前进。当需要时,两个维度是兼容的

  • 他们是平等的,或者
  • 其中一个是1
  • 如果不满足这些条件,将引发ValueError:操作数无法一起广播异常,表明数组具有不兼容的形状。结果数组的大小不是沿每个输入轴的1


    据此,(515512)和(512512)将在数组末尾成功匹配,并在匹配515到512时抛出错误

    。。。我猜这是个打字错误,你的意思是
    np.one((512512))
    ?(而且它实际上是无用的,你可以只做+11,它有相同的效果)我没有看到打字错误。我知道这个例子是无用的,但我简化了代码以显示错误出现的位置。