mam 4 wymiarową macierz, to data.shape = (20,30,33,288)
. I znajduję indeks najbliższego tablicy do n użyciuStosując numpy.argmax() w wielowymiarowych tablic
index = abs(data - n).argmin(axis = 1), so
index.shape = (20,33,288) with the indices varying.
ja jak używać data[index] = "values"
z values.shape = (20,33,288)
, ale data[index]
zwraca błąd „wskaźnik (8) poza zakresem (0 < = wskaźnik < 1) w wymiarze 0 " lub ta operacja zajmuje stosunkowo długi czas, aby obliczyć i zwrócić macierz o kształcie, który nie wydaje się mieć sensu.
Jak zwrócić tablicę poprawnych wartości? tj.,
Wydaje się, że jest to prosty problem, czy istnieje prosta odpowiedź?
Chciałbym ostatecznie znaleźć index2 = abs(data - n2).argmin(axis = 1)
, więc mogę wykonać operację, np. Suma danych w indeksie do danych w indeksie 2 bez przechodzenia przez zmienne. czy to możliwe?
Używam Pythona2.7 i numpy w wersji 1.5.1.
Czy istnieje również odpowiedź, gdy nie znasz ndim? –
@AndreasMueller: Tak, użyj 'tup [: axis] + (index,) + tup [axis:]' jako indeks dla 'data', gdzie' tup' jest krotką zwróconą przez 'numpy.indices()'. –