我有一个 N 维数组(名为 A)。对于A的第一轴的每一行,我想获得沿A的其他轴的最大值的坐标。然后我将返回一个二维数组,其中包含第一轴每一行的最大值的坐标A的
我已经使用循环解决了我的问题,但我想知道是否有更有效的方法来做到这一点。我当前的解决方案(例如数组 A)如下:
import numpy as np
A=np.reshape(np.concatenate((np.arange(0,12),np.arange(0,-4,-1))),(4,2,2))
maxpos=np.empty(shape=(4,2))
for n in range(0, 4):
maxpos[n,:]=np.unravel_index(np.argmax(A[n,:,:]), A[n,:,:].shape)
在这里,我们将拥有:
A:
[[[ 0 1]
[ 2 3]]
[[ 4 5]
[ 6 7]]
[[ 8 9]
[10 11]]
[[ 0 -1]
[-2 -3]]]
maxpos:
[[ 1. 1.]
[ 1. 1.]
[ 1. 1.]
[ 0. 0.]]
如果有多个最大化器,我不介意选择哪个。
我尝试过使用np.apply_over_axes
,但我没有设法让它返回我想要的结果。