值错误:形状(4,4)和(3,)不对齐:4(维度1)!= 3(维度0)

2024-04-25 00:48:06 发布

您现在位置:Python中文网/ 问答频道 /正文

import numpy as np
A = np.matrix([[1, 2, 3],
               [4, 5, 6],
               [7, 8, 9],
               [10, 11, 12]])
u, s, vt = np.linalg.svd(A)
print (np.dot(u, np.dot(np.diag(s), vt)))

我使用numpy创建矩阵,它显示了下面的脚本错误。在

ValueError: shapes (4,4) and (3,) not aligned: 4 (dim 1) != 3 (dim 0)


Tags: importnumpy脚本as错误np矩阵matrix
2条回答

如果在SVD之后添加print(u.shape, s.shape, vt.shape),您将看到u是4x4矩阵,而{}返回3x3矩阵。因此,为什么不能计算u的点积。将np.linalg.svdfull_matrices选项设置为False,将返回一个4x3矩阵,并允许计算点积。一、 e

import numpy as np
A = np.matrix([[1, 2, 3], 
               [4, 5, 6], 
               [7, 8, 9],
               [10, 11, 12]])
u, s, vt = np.linalg.svd(A, full_matrices=False)
print(np.dot(u, np.dot(np.diag(s), vt)))

对于你的具体问题,这样做是否正确是另一回事。在

你试图在两个不相容的矩阵之间做点积。u(其形状为(4x4))的列数不等于np.dot(np.diag(s), vt)(其形状为(3x3))的行数

相关问题 更多 >