Python Numpy转置乘法问题

Python Numpy转置乘法问题,python,numpy,scipy,eigenvalue,Python,Numpy,Scipy,Eigenvalue,我试图找到一个矩阵的特征值乘以它的转置,但我不能用numpy testmatrix = numpy.array([[1,2],[3,4],[5,6],[7,8]]) prod = testmatrix * testmatrix.T print eig(prod) 我希望该产品的结果如下: 5 11 17 23 11 25 39 53 17 39 61 83 23 53 83 113 和特征值: 0.0000 0.0000

我试图找到一个矩阵的特征值乘以它的转置,但我不能用numpy

testmatrix = numpy.array([[1,2],[3,4],[5,6],[7,8]])
prod = testmatrix * testmatrix.T
print eig(prod)
我希望该产品的结果如下:

5    11    17    23
11    25    39    53
17    39    61    83
23    53    83   113
和特征值:

0.0000
0.0000
0.3929
203.6071
相反,我得到了
ValueError:形状不匹配:当
testmatrix
与其转置相乘时,对象无法广播到单个形状

这在MatLab中起作用(乘法,而不是代码),但我需要在python应用程序中使用它

有人能告诉我我做错了什么吗?

你可能会发现这很有用,因为你知道MATLAB

另外,尝试将
testmatrix
dot()
函数相乘,即
numpy.dot(testmatrix,testmatrix.T)


显然是在数组之间使用矩阵乘法!
*
运算符用于元素相乘(
*
在MATLAB中)。

您使用的是元素相乘-两个Numpy矩阵上的
*
运算符与MATLAB中的
*
运算符等效。使用

prod = numpy.dot(testmatrix, testmatrix.T)

PEP 465允许使用中缀
@
运算符:
mat1@mat2