[英]how to multiply each row of a matrix with numpy
我是机器学习的新手。使用 python,numpy。 我需要在大小为 (3, 2) 的矩阵和大小为 (100, 2) 的矩阵的每一行上获取点积,即
a = [[1, 2], [3, 4], [5, 6]]
b = [[5, 5], [6, 6], [7, 7], ...] # it has 100 row
我想要的是:
np.dot(a, b[0])
np.dot(a, b[1])
我目前有:
z = np.dot(a, b)
但尺寸不匹配
但我不能使用循环并且需要对代码进行矢量化。
谁能给我一些提示,非常感谢!!
对于一个点积工作,它要求的第一尺寸b
以匹配的第二维度a
。 因此你需要转置b
:
np.dot(a, b.T)
输出:
array([[15, 18, 21, 24],
[35, 42, 49, 56],
[55, 66, 77, 88]])
或者a
,取决于预期的输出:
>>> np.dot(b, a.T)
array([[15, 35, 55],
[18, 42, 66],
[21, 49, 77],
[24, 56, 88]])
似乎你想用形状100,2
的矩阵的转置来计算形状3,2
的矩阵的点积
您可以使用mT
获得矩阵m
的转置
所以你想要的是:
np.dot(a, b.T)
这会给你一个形状为3,100
的矩阵,其中每列是np.dot(a,b[i])
for i = 0,...,99
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.