Ich bin sicher, dass diese sind alle gute Antworten, aber ich konnte sie nicht nutzen. Allerdings fand ich einen anderen Thread, der diese teilweise beantwortet: MATLAB-style find() function in Python
John den folgenden Code geschrieben, die von finden für das erste Argument ausmacht, in Ihrem Fall A> 9 --- finden (A> 9,1) - aber nicht das zweite Argument.
Ich änderte Code Johns, die ich Konten für das zweite Argument“, 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]
Dies gibt Schwelle = 3 glauben. Mein Verständnis ist, dass Pythons Index bei 0 beginnt ... also ist es das Äquivalent von Matlab, das 4 sagt. Sie können den Wert des Index ändern, der angerufen wird, indem Sie die Zahl in den Klammern dh [1], [2] usw. ändern [0].
Johns Original-Code:
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)
die >>> inds gibt [2, 5, 8]
Meinen Sie '> ='? weil '>' würde 8. zurückgeben. –
Eigentlich sind numpy Arrays Null basiert, so dass die '9' in Position' 3' und die '10' in Position' 7' ist. – Jaime