python - 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 -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
意味着矩阵元素乘法。
推荐阅读
- python - 如果语句/条件参数在 Geany (PYTHON) 中不起作用
- python - tabula vs camelot 用于从 PDF 中提取表格
- java - GraphAPI 在创建新组后立即创建新的 MSTeam 失败并出现 404
- javascript - Chart.js 设置全局点大小不起作用
- oracle - Oracle:我可以避免很多 JOIN 吗?
- swift - 如何从可可应用程序运行终端命令?
- asp.net-core - 我应该如何在 asp.net core web api 中发送 401 和 403 响应代码?
- python - Python:根据条件查找数据框中每个事件所花费的时间
- javascript - valueOf() 方法如何作用于 JavaScript 下面的日期对象?
- reactjs - 故事书.js。如何将组件编译为 ES5 lib