Например, у меня есть сложный массив формы (3,3,3), и я хочу найти угол элемента, когда величина массива вдоль оси 2 максимальна.То есть
a = np.random.random((3, 3, 3)) + 1j * np.random.random((3, 3, 3))
amp3d = np.abs(a)
amp2d = np.max(amp3d, axis=2)
angle2d = np.zeros_like(amp2d)
for i in range(a.shape[0]):
for j in range(a.shape[1]):
for k in range(a.shape[2]):
if amp3d[i, j, k] == amp2d[i,j]:
angle2d[i, j] = np.angle(a[i, j, k])
Конечно, я могу сделать цикл, но я думаю, что существует довольно питонический способ выполнить эту задачу
В Matlab это будет выглядеть как np.angle(a[np.argmax(a, axis=2)])
Спасибо!