2012-05-10 11 views
26

Zastanawiam się, czy istnieje syntaktycznie prosty sposób sprawdzenia, czy każdy element w tablicy numpy znajduje się pomiędzy dwoma liczbami.Łatwy sposób na sprawdzenie, czy każdy element w tablicy numpy znajduje się pomiędzy dwiema wartościami?

Innymi słowy, podobnie jak numpy.array([1,2,3,4,5]) < 5 powróci array([True, True, True, True, False]), zastanawiałem się, czy to możliwe, aby zrobić coś podobnego do tego:

1 < numpy.array([1,2,3,4,5]) < 5

... aby uzyskać ...

array([False, True, True, True, False])

Rozumiem, że mogę uzyskać to poprzez logiczne łańcuchy testów boolowskich, ale pracuję przez dość skomplikowany kod i szukałem lub syntaktycznie czyste rozwiązanie.

Jakieś wskazówki?

Odpowiedz

37

jednym rozwiązaniem byłoby:

a = numpy.array([1,2,3,4,5]) 
(a > 1).all() and (a < 5).all() 

jeśli chcesz acutal tablicę vaues prawdę, wystarczy użyć:

(a > 1) & (a < 5) 
+0

To właśnie zwraca 'FALSE i nie daje mi wartość logiczną dla * każdy element * – blz

+1

myślałem, że to było to, co chciałeś, sprawdź czy każdy element tablicy jest pomiędzy dwoma liczbami ... ok, jestem gona edycja ... – mata

+0

Bez trudnych uczuć =) To musi być jedna rzecz Nie myślałem, żeby spróbować. Dzięki wielkie! – blz

Powiązane problemy