如何基于不同多维数组中的值对一个多维numpy数组进行运算?

时间:2019-06-28 03:56:57

标签: python numpy multidimensional-array

我认为我要尝试做的事最好通过使用数组ab并生成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}})。

在示例中,每个访问位置的函数可能如下所示:

1

(这只是一个示例,我可能想在def _operate(a_val, b_val): return a_val + np.array([b_val, 0, 0]) 内做其他事情,但可以说,我最多会将b的值添加到a的一个字段中。)

在numpy中是否有理想/正确的方法来做到这一点。谢谢!

0 个答案:

没有答案