In [15]: a1=np.random.randint(0,10,(2,3,4))
In [16]: a2=np.random.randint(0,10,(2,3,4))
In [17]: a3=np.random.randint(0,10,(2,3,4))
Соберите их в один массив (по новой оси) и возьмите максимум вдоль новой оси.
In [18]: aa = np.array([a1,a2,a3])
In [19]: aa
Out[19]:
array([[[[6, 2, 1, 2],
[7, 6, 5, 2],
[0, 4, 2, 5]],
[[9, 1, 5, 3],
[2, 5, 0, 5],
[2, 2, 2, 7]]],
[[[5, 2, 7, 1],
[7, 7, 9, 8],
[6, 3, 2, 9]],
[[0, 1, 2, 3],
[0, 3, 6, 1],
[5, 2, 7, 9]]],
[[[1, 9, 3, 3],
[6, 5, 7, 4],
[8, 0, 4, 4]],
[[8, 1, 1, 8],
[8, 5, 4, 8],
[3, 3, 9, 0]]]])
In [20]: np.max(aa, axis=0)
Out[20]:
array([[[6, 9, 7, 3],
[7, 7, 9, 8],
[8, 4, 4, 9]],
[[9, 1, 5, 8],
[8, 5, 6, 8],
[5, 3, 9, 9]]])
Я позволю вам проверить значения.
argmax
сообщает нам, какой массив является самым большим в 3d-слоте:
In [21]: np.argmax(aa, axis=0)
Out[21]:
array([[[0, 2, 1, 2],
[0, 1, 1, 1],
[2, 0, 2, 1]],
[[0, 0, 0, 2],
[2, 0, 1, 2],
[1, 2, 2, 1]]])