Спасибо за ответ. У меня нет «значений», поэтому я не думаю, что могу использовать numpy.put. Я верю, что ответ Свена сработает.

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

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] возвращает ошибку«Индекс (8) вне диапазона (0 <= индекс <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.

Ответы на вопрос(2)

Ваш ответ на вопрос