Python numpy矩阵乘法问题

Python numpy矩阵乘法问题,python,python-3.x,numpy,Python,Python 3.x,Numpy,我试图通过转置其中一个矩阵来乘以两个维度的矩阵(17,2) 下面是示例p1 p1 = [[ 0.15520622 -0.92034567] [ 0.43294367 -1.05921439] [ 0.7569707 -1.15179354] [ 1.08099772 -1.15179354] [ 1.35873517 -0.96663524] [-1.51121847 -0.64260822] [-1.32606018 -0.87405609] [-1.00203315

我试图通过转置其中一个矩阵来乘以两个维度的矩阵(17,2)

下面是示例p1

    p1 = [[ 0.15520622 -0.92034567]
 [ 0.43294367 -1.05921439]
 [ 0.7569707  -1.15179354]
 [ 1.08099772 -1.15179354]
 [ 1.35873517 -0.96663524]
 [-1.51121847 -0.64260822]
 [-1.32606018 -0.87405609]
 [-1.00203315 -0.96663524]
 [-0.67800613 -0.96663524]
 [-0.3539791  -0.87405609]
 [ 0.89583942  1.02381648]
 [ 0.66439155  1.3478435 ]
 [ 0.3866541   1.48671223]
 [ 0.15520622  1.5330018 ]
 [-0.07624165  1.5330018 ]
 [-0.3539791   1.44042265]
 [-0.58542698  1.20897478]]
这里是矩阵p2的另一个示例

 p2 = [[ 0.20932473 -0.90029958]
 [ 0.53753779 -1.03849455]
 [ 0.88302521 -1.10759204]
 [ 1.24578701 -1.02122018]
 [ 1.47035383 -0.77937898]
 [-1.46628927 -0.69300713]
 [-1.29354556 -0.9521227 ]
 [-0.96533251 -1.03849455]
 [-0.63711946 -1.00394581]
 [-0.3089064  -0.90029958]
 [ 0.86575084  1.06897874]
 [ 0.55481216  1.37991742]
 [ 0.26114785  1.50083802]
 [ 0.03658102  1.51811239]
 [-0.1879858   1.50083802]
 [-0.46437574  1.37991742]
 [-0.74076568  1.08625311]]
我试着用numpy把它们相乘

import numpy

print(p1.T * p2)
但是我得到了以下错误

operands could not be broadcast together with shapes (2,17) (17,2) 
这是预期的矩阵乘法输出

[[11.58117944  2.21072324]
 [-0.51754442 22.28728876]]
我到底哪里出了问题,所以您应该使用:


矩阵乘法是用np.dot(p1.T,p2)完成的,因为
A*B
表示矩阵元素按顺序相乘。

很抱歉问个模糊的问题。最初,我从numpy矩阵中得到p1和p2值。后来,我将它们作为列表存储在json文件中,以便使用

托利斯先生()

方法,并使用

numpy.array()

方法,这显然是错误的..我使用

numpy.matrix()


似乎能解决这个问题的方法。希望这对某人有所帮助

,您希望的输出是什么样的?请注意,将示例减少到3行(尽可能少)。结果应该是2X2,类似于[0.99879867 0.04900222][-0.04900222 0.99879867]]您确定需要乘法吗,我用
np.dot
回答,但您的结果不是点积得到的结果。您以前是如何定义
p1
p2
的?使用
np.matrix
?如何从JSON中读取它们?使用
np.array
?对于两类数组,星形乘法是不同的。
p1.T.dot(p2)