Мне нужно изменить минимальные/максимальные значения 4D-массива вдоль определенной оси. Координаты min/max вдоль определенной оси перенастроены на armax
, поэтому для 4D-массива a имеется трехмерный массив.Индексы минимальных/максимальных элементов в массиве 4D
Теперь из этого трехмерного массива мне нужно восстановить полный индекс значений min/max. Я понимаю, что наиболее эффективный способ сделать это сочетание результатов mgrid
и argmin
, используя что-то вроде (для мин вдоль 1-ой оси):
mg = np.mgrid[0:Array.shape[0], 0:Array.shape[1], 0:Array.shape[2], 0:Array.shape[3]]
Array[mg[0], np.argmin(Array, axis=1), mg[2], mg[3]] = np.min(Array)
однако, это, кажется, не работать правильно.
Может кто-нибудь, пожалуйста, сообщите, как исправить код выше, чтобы заменить минимальные значения массива вдоль первой оси с абсолютным минимумом массива?
В качестве альтернативы, если это не самый быстрый способ сделать это, какое оптимальное решение?
Сделать эту строку более легкой для чтения. Это пугает потенциальную помощь. – hpaulj