Ich habe ein ArrayWie finden Werte in einem Array, das zwei Bedingungen unter Verwendung von Python erfüllen
a=[1,2,3,4,5,6,7,8,9]
und ich möchte die Indizes des Elements s zu finden, erfüllen zwei Bedingungen, wie zB
a>3 and a<8
ans=[3,4,5,6]
a[ans]=[4,5,6,7]
I können numpy.nonzero(a>3)
oder numpy.nonzero(a<8)
aber nicht numpy.nonzero(a>3 and a<8)
, die den Fehler verursacht:
ValueError: The truth value of an array with more than one element is
ambiguous. Use a.any() or a.all()
Wenn ich versuche, any
oder all
zu verwenden, erhalte ich den gleichen Fehler. Ist es möglich, zwei bedingte Tests zu kombinieren, um das ans zu bekommen?
warum Sie numpy benötigt, können Sie es wie auf diese Weise nicht tun können! Filter (Lambda a: 3 shahjapan
@shahjapan - wahrscheinlich, weil sie die erhöhte Geschwindigkeit eines numpigen Arrays benötigen, weil sie wahrscheinlich einen viel * viel * größeren Datensatz haben. –