矩阵数学的匹配矩阵大小
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])
我正在尝试使用 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])