Как работать с одним многомерным массивом Numpy на основе значений в другом многомерном массиве? - PullRequest
0 голосов
/ 28 июня 2019

Я думаю, что то, что я пытаюсь сделать, лучше всего иллюстрируется на этом примере взятия массивов a и b и выдачи expected:

>>> a = np.array([ [ [0,0,0], [0,0,0] ], [ [0,0,0], [0,0,0] ] ])
>>> a
array([[[0, 0, 0],
        [0, 0, 0]],

       [[0, 0, 0],
        [0, 0, 0]]])

>>> a.shape
(2, 2, 3)

>>> b = np.array([ [3, 7], [9, 8] ])
>>> b
array([[3, 7],
       [9, 8]])
>>> b.shape
(2, 2)

>>> expected = np.array([ [ [3,0,0], [7,0,0] ], [ [9,0,0], [8,0,0] ] ])
>>> expected
array([[[3, 0, 0],
        [7, 0, 0]],

       [[9, 0, 0],
        [8, 0, 0]]])

По существу, для каждой позиции в массиве a по оси 1, я хочу посетить эту позицию и работать с ней, основываясь на соответствующем значении в массиве b (также по оси 1).

В этом примере функция для каждогоПосещаемая позиция может выглядеть следующим образом:

def _operate(a_val, b_val):
    return a_val + np.array([b_val, 0, 0])

(Это всего лишь пример, и я могу захотеть заняться другими делами внутри _operate, но, допустим, самое большее, я бы добавил значение из bк одному из полей в.)

есть ли идеальный / правильный способ сделать это в NumPy.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...