In [654]: a = np.array([1, 2, 3, 4, 5, 6, 7, 8]).reshape(2, 2, 2)
In [655]: np.amax(a, axis=(1,2))
Out[655]: array([4, 8])
In [656]: a
Out[656]:
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
argmax
не принимает индексы кортежа. Мы можем обойти это путем изменения формы:
In [662]: np.argmax(a.reshape(a.shape[0],-1),1)
Out[662]: array([3, 3])
и затем восстановить полный индекс с помощью:
In [669]: idx = np.argmax(a.reshape(a.shape[0],-1),1)
In [670]: idx = np.unravel_index(idx,a.shape[1:])
In [671]: idx
Out[671]: (array([1, 1]), array([1, 1]))
In [672]:
In [672]: idx = (np.arange(a.shape[0]),)+idx
In [673]: idx
Out[673]: (array([0, 1]), array([1, 1]), array([1, 1]))
In [674]: a[idx]
Out[674]: array([4, 8])