B = np.random.randint(0, 10, 3 * 4 * 5).reshape(3, 4, 5)
C = np.zeros((3, 10, 5))
z, y, x = np.indices(A.shape)
C[z, B[z, y, x], x] = A[z, y, x]
Преобразование сетки Python numpy с использованием универсальных функций