如何用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]])

似乎你想计算形状为3,2的矩阵与转置的点积形状为100,2的矩阵

你可以得到矩阵m的转置与m.T

所以你想要的是:

np.dot(a, b.T)

这会给你一个形状为3,100的矩阵其中每一列都是np.dot(a,b[i])对应i = 0,...,99

相关内容

  • 没有找到相关文章

最新更新