2013-06-20 8 views
5

Załóżmy, że mam tablicę, która jest NX3 i chcę elementy, które spełniają powiedzieć:wydobywające konkretne wiersze NX3 tablicy przy czym każda spełnia warunek kolumna

4 < col1 < 13, 5 > col2 > 3, 10 > col3 > 6 

czyli zastosowania to:

1,2,3 
4,5,6 
9,4,7 

Następnie udostępni tablicę Mx3 zawierającą tylko te wiersze, które spełniają wszystkie trzy warunki. W powyższym przykładzie, wyprowadza

9,4,7 

myślałem robi pętlę ale pomyślałem numpy lub coś podobnego musi mieć coś, co jest o wiele szybciej (np np.where?)

+1

Możecie zajrzeć do [pandy] (http://pandas.pydata.org/). – BrenBarn

Odpowiedz

3

zbudować logiczną tablicę dla każdej kolumny:

cond1 = (my_array[:, 0] > 4) & (my_array[:, 0] < 13) 
cond2 = (my_array[:, 1] > 3) & (my_array[:, 1] < 5) 
cond3 = (my_array[:, 2] > 6) & (my_array[:, 2] < 10) 

następnie and twoje trzy warunki łącznie:

cond = cond1 & cond2 & cond3 

I wreszcie używać, aby wybrać wiersze z macierzy:

out = my_array[cond] 
Powiązane problemy