text:  :)
  you can do this with
  numpy.argmax and
  numpy.indices.
  import numpy as np X = np.array([[[10, 1],[ 2,10],[-5, 3]], [[-1,10],[ 0, 2],[ 3,10]], [[ 0, 3],[10, 3],[ 1, 2]], [[ 0, 2],[ 0, 0],[10, 0]]]) Y = np.array([[[11, 2],[ 3,11],[-4, 100]], [[ 0,11],[ 100, 3],[ 4,11]], [[ 1, 4],[11, 100],[ 2, 3]], [[ 100, 3],[ 1, 1],[11, 1]]]) ind = X.argmax(axis=0) a1,a2=np.indices(ind.shape) print X[ind,a1,a2] # [[10 10] # [10 10] # [10 10]] print Y[ind,a1,a2] # [[11 11] # [11 11] # [11 11]]
  The answer here provided the inspiration for this