我有两个形状为(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]
有内置的操作吗?
答案 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。