我有一个numpy数组A:

array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

和另一个数组B:
array([0, 1])

如何将A和B相乘得到结果?
array([[[ 0,  0,  0,  0],
        [ 0,  0,  0,  0],
        [ 0,  0,  0,  0]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

非常感谢你。

最佳答案

您需要调整第二个ndarray的形状,以便两个数组都具有相同的维数:

arr1 * arr2[:, None, None]


要么

arr1 * arr2.reshape(2, 1, -1)

arr1.shape
# (2, 3, 4)

arr2[:, None, None].shape
# (2, 1, 1)

arr2.reshape(2, 1, -1).shape
# (2, 1, 1)

关于python - 如何将numpy 1D与N-D数组相乘?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58455293/

10-11 17:00
查看更多