Mam tablicę numpy A z n wierszami o rozmiarze 3. Każdy wiersz składa się z trzech liczb całkowitych, z których każda jest liczbą całkowitą, która odnosi się do innej pozycji wewnątrz tablicy numpy. Na przykład Jeśli chcę wiersze odesłane przez N[4]
, używam N[N[4]]
. Wizualnie:Dziwne przypisanie w tablicach numpy
N = np.array([[2, 3, 6], [12, 6, 9], [3, 10, 7], [8, 5, 6], [3, 1, 0] ... ])
N[4] = [3, 1 ,0]
N[N[4]] = [[8, 5, 6]
[12, 6, 9]
[2, 3, 6]]
ja budowania funkcji modyfikujący N, i trzeba zmodyfikować N [N [x]] W pewnym określonym X, która jest parametrem też (cztery w przykładzie). Chcę zmienić cały 6 w subarray na inny numer (powiedzmy 0), więc używam numpy.where znaleźć indeksów, które są
where_is_6 = np.where(N[N[4]] == 6)
Teraz, jeśli mogę wymienić bezpośrednio jak N[N[4]][where_is_6] = 0
tam nie ma zmiana. Jeśli utworzę poprzednią referencję, taką jak var = N[N[4]]
, a następnie var[where_is_6]
, zmiana zostanie wykonana, ale lokalnie do funkcji i N nie zostanie zmieniona globalnie. Co mogę zrobić w tym przypadku? albo co robię źle?
Indeksowanie z innym indeksowania nie będą działać ze sposobu zdefiniowanego listę' n'. Najpierw musisz przekonwertować N na 'numpy.array()'. –
Powiedziałem, że to tablica numpy, kod jednak nie odzwierciedla tego, edycja teraz ... –