python - 如何使用numpy将矩阵与另一个矩阵中的每一行相乘
问题描述
import numpy
A = numpy.array([
[0,1,1],
[2,2,0],
[3,0,3]
])
B = numpy.array([
[1,1,1],
[2,2,2],
[3,2,9],
[4,4,4],
[5,9,5]
])
A的尺寸:N * N(3*3)
B 尺寸:K * N(5*3)
预期结果为:C = [ A * B[0], A * B[1], A * B[2], A * B[3], A * B[4]] (C 的维度也是 5* 3)
我是 numpy 的新手,不知道如何在不使用 for 循环的情况下执行此操作。
谢谢!
解决方案
根据您提供的数学,我认为您正在评估 A 乘以 B 转置。如果您希望结果矩阵的大小为 5*3,则可以转置它(相当于numpy.matmul(B.transpose(),A))
.
import numpy
A = numpy.array([
[0,1,1],
[2,2,0],
[3,0,3]
])
B = numpy.array([
[1,1,1],
[2,2,2],
[3,2,9],
[4,4,4],
[5,9,5]
])
print(numpy.matmul(A,B.transpose()))
output :array([[ 2, 4, 11, 8, 14],
[ 4, 8, 10, 16, 28],
[ 6, 12, 36, 24, 30]])
for i in range(5):
print (numpy.matmul(A,B[i]))
Output:
[2 4 6]
[ 4 8 12]
[11 10 36]
[ 8 16 24]
[14 28 30]
推荐阅读
- vba - InStr(VBA 函数)找不到 vbCrLf
- javascript - 从服务器获取数据,保存在“状态”中,然后在卡片上显示“react-trello”
- uima - 对于 ConceptMapper:如何在规范属性中包含 & 符号?还是我需要将其扩展为等效单词?
- javascript - 基于距离向顶点添加点(网格几何)
- apache-kafka - kafka connect avro 找不到适合 jdbc 的驱动程序:mysql://127.0.0.1:3306/connect_test
- powershell - 自动扩展行和列
- lua - 函数不会改变变量的值
- python - 编写一个程序,接受来自用户的正整数并打印该整数的前四个倍数。使用 while 循环
- javascript - 在返回调度块中,Javascripts 获取删除请求方法不起作用
- python - 绘制后的 ReportLab 比例画布(适合页面)