Jestem pewien, że te są świetnymi odpowiedziami, ale nie byłem w stanie ich wykorzystać. Jednak znalazłem inny wątek, który częściowo odpowiada na to: MATLAB-style find() function in Python
John opublikował następujący kod, który wyjaśnia pierwszy argument znalezienia, w twoim przypadku A> 9 --- find (A> 9,1) - ale nie drugi argument.
I zmieniany Jana kod, który Wierzę kont dla drugiego argumentu”, 1"
def indices(a, func):
return [i for (i, val) in enumerate(a) if func(val)]
a = [1,2,3,9,6,4,3,10]
threshold = indices(a, lambda y: y >= 9)[0]
ta zwraca próg = 3. Rozumiem, że indeks Pythona zaczyna się od 0 ... więc jest to odpowiednik matlab mówiącego: 4. Możesz zmienić wartość wywoływanego indeksu, zmieniając liczbę w nawiasach, tj. [1], [2] itd. Zamiast [0].
oryginalny kod Jana:
def indices(a, func):
return [i for (i, val) in enumerate(a) if func(val)]
a = [1, 2, 3, 1, 2, 3, 1, 2, 3]
inds = indices(a, lambda x: x > 2)
która zwraca >>> inds [2, 5, 8]
Czy to znaczy '> ='? ponieważ '>' zwróci 8. –
W rzeczywistości, numpy tablice są oparte na zero, więc '9' jest w pozycji' 3' i '10' w pozycji' 7'. – Jaime