矩阵数学的匹配矩阵大小

Matching Matrix sizes for matrix math

我正在尝试使用 numpy 执行矩阵数学运算。我有一个 2x2x401 矩阵,我正在尝试使用 np.add() 添加到单位矩阵。在代码中,我尝试过:

result = []
self.data = x #where x is a 2x2x401 np array
z_sqrt = np.identity(2)
for x in range(401):
    result.append(np.add(z_sqrt,self.data[:][:][x]))
    #if the above gives me errors because of how I'm assigning it, I'm not there yet

我得到的错误是:

ValueError: operands could not be broadcast together with shapes (2,2) (2,401)

请尝试以下可能有帮助的方法,

result = x + np.atleast_3d(np.identity(2))

其中 x 是您的 (2,2,401) 数组。上面应该直接在整个数组上工作而不使用 for 循环,所以你在一行中得到形状为 (2,2,401) 的 result。或者你也可以试试下面的方法,

result = x + (np.identity(2)[:,:,np.newaxis])