我有两个数组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
来完成此操作,但我现在已经尝试了很长时间了,并且无法让它发挥作用。