Usando numpy.argmax () em matrizes multidimensionais

Tenho uma matriz de 4 dimensões, ou seja,data.shape = (20,30,33,288). Estou encontrando o índice da matriz mais próxima de n usando

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

Gostaria de usardata[index] = "values" comvalues.shape = (20,33,288), masdata[index] retorna o erro "índice (8) fora do intervalo (0 <= índice <1) na dimensão 0" ou essa operação leva um tempo relativamente longo para calcular e retorna uma matriz com uma forma que parece não fazer sentid

Como eu retorno uma matriz de valores corretos? ou seja,

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

Isso parece um problema simples, existe uma resposta simples?

Eu gostaria de encontrarindex2 = abs(data - n2).argmin(axis = 1), para que eu possa executar uma operação, digamos soma dados no índice para dados no índice2 sem percorrer as variáveis. Isso é possível

Estou usando python2.7 e numpy versão 1.5.

questionAnswers(2)

yourAnswerToTheQuestion