将一个数组的每一行与numpy中另一个数组的每个元素相乘

时间:2015-09-14 09:26:00

标签: python numpy multidimensional-array

我有两个数组A和B在numpy。 A 保存笛卡尔坐标,每行是3D空间中的一个点,并且具有形状(r,3)。 B 具有形状(r,n)并保持整数。

我想要做的是将B的每个元素与A中的每一行相乘,以便得到的数组具有形状(r,n,3)。例如:

# r = 3
A = np.array([1,1,1, 2,2,2, 3,3,3]).reshape(3,3)
# n = 2
B = np.array([10, 20, 30, 40, 50, 60]).reshape(3,2)

# Result with shape (3, 2, 3):
# [[[10,10,10], [20,20,20]],
# [[60,60,60], [80,80,80]]
# [[150,150,150], [180,180,180]]]

我非常确定可以使用np.einsum来完成此操作,但我现在已经尝试了很长时间了,并且无法让它发挥作用。

0 个答案:

没有答案