ich ein numpy Array so haben:NumPy wo als Bereich Indizes
a = numpy.array([1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0])
Das Ziel ist es, die Bereiche von Nullen und Einsen zu finden, die Start- und End-Indizes. Ich möchte diese Bereiche in einem anderen numpy Array verwenden, das Zeitstempel enthält, um herauszufinden, wie viel Zeit jede Nullphase benötigt. So etwas Ähnliches:
dur = numpy.diff(time[start idx, end idx])
jedoch numpy wo gibt mir alle Indizes:
numpy.where(a==0)
(array([ 3, 4, 5, 9, 10, 11], dtype=int64),)
Ich würde nur idx jeder Phase Null beginnen und enden müssen, wie [[3,5], [9 , 11]]. Wie kann ich das erreichen?
Gibt es eine Möglichkeit auf dem Ergebnis von wo (Array arbeiten ([3, 4 , 5, 9, 10, 11], dtype = int64)), um die fortlaufenden Zahlen zu gruppieren? Dann könnte ich an kleineren numply Arrays arbeiten und etwas Zeit im Vergleich zu den ursprünglichen Daten sparen. – dito
@MichaelHaus Besuche die Änderungen am Ende. – Divakar
Ich hätte schwören können, ich habe gesehen, dass du diese Frage bereits ein Dutzend Mal beantwortet hast, @Divakar. Zu dem Punkt, auf dem ich Ihre Userpage trollte, um zu versuchen, den Dupe Link zu finden, aber ohne Erfolg. –