繁体   English   中英

如何将矩阵的每一行与numpy相乘

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM