Как умножить NumPy 1D с массивом ND? - PullRequest
1 голос
/ 18 октября 2019

У меня есть пустой массив 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]]])

Большое спасибо.

1 Ответ

2 голосов
/ 18 октября 2019

Вам нужно изменить форму второго 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...