简体   繁体   中英

How to multiply numpy 1D with N-D array?

I have a numpy array 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]]])

And the orther array B:

array([0, 1])

How can I get the result by multiply A and 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]]])

Thank you very much.

You need to reshape the second ndarray so both arrays have the same number of dimensions:

arr1 * arr2[:, None, None]

or

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM