我认为我要尝试做的事最好通过使用数组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}})。
在示例中,每个访问位置的函数可能如下所示:
1
(这只是一个示例,我可能想在def _operate(a_val, b_val):
return a_val + np.array([b_val, 0, 0])
内做其他事情,但可以说,我最多会将b的值添加到a的一个字段中。)>
在numpy中是否有理想/正确的方法来做到这一点。谢谢!