每个矩阵元素的向量乘积

时间:2018-07-18 09:22:58

标签: python numpy

我有两个形状为(2,3)的矩阵:

a=[[a_11, a_12, a_13], [a_21, a_22, a_23]]
b=[[b_11, b_12, b_13], [b_21, b_22, b_23]]

我想计算以下形状为(2,)的向量:

[[a_11, a_12, a_13]*[b_11, b_12, b_13],
 [a_21, a_22, a_23]*[b_21, b_22, b_23]]

[a_11*b_11 + a_12*b_12 + a_13*b_13, a_21*b_21 + a_22*b_22 + a_23*b_23]

有内置的操作吗?

2 个答案:

答案 0 :(得分:1)

你可以写

(a * b).sum(axis=-1)

示例:

a=np.array([[1, 2, 3], [2, 3, 4]])
b=np.array([[3, 4, 5], [4, 5, 6]])
(a * b).sum(axis=-1)
#Out:
array([26, 47])

手动验证

1*3 + 2*4 + 3*5 == 26
2*4 + 3*5 + 4*6 == 47

答案 1 :(得分:0)

这是A * B',对吗?尝试np.dot(a, np.transpose(b)) https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html