Использование numpy.argmax () для многомерных массивов

У меня есть 4-х мерный массив, то есть data.shape = (20,30,33,288) . Я нахожу индекс ближайшего к n массива с помощью

index = abs(data - n).argmin(axis = 1), so
index.shape = (20,33,288) with the indices varying. 

. Я хотел бы использовать data [index] = "values" с values.shape = (20,33,288) , но data [index] возвращает ошибку «index (8) вне диапазона (0 <= index <1) в измерении 0» , или эта операция занимает относительно много времени, чтобы вычислить и вернуть матрицу с формой, которая, кажется, не имеет смысла.

Как мне вернуть массив правильных значений? например,

data[index] = "values" with values.shape = (20,33,288)

Это кажется простой проблемой, есть ли простой ответ?

В конце концов я хотел бы найти index2 = abs (data - n2) .argmin (axis = 1) , поэтому Я могу сделать операцию, скажем, суммируйте данные по индексу с данными по индексу 2 без перебора переменных. Возможно ли это?

Я использую python2.7 и numpy версии 1.5.1.

13
задан sth 27 April 2011 в 01:37
поделиться