2016-05-19 5 views
0

abgerufen werden, wenn ich numpy.nonzero(), z. numpy.nonzero(bool_row), wobei bool_row ein series ist, der boolean Werte enthält. Es gibt ein Tupel zurück, das nur ein Array enthält. Ich möchte die Elemente im Array abrufen und sie in eine Liste einfügen. Wie geht das?Wie die Array-Elemente in einem Tupel in numpy

Antwort

2

Beim Indexieren entspricht ein Tupel den tatsächlichen Werten, z.

x[1,2] 
x[(1,2)] 
idx = (1,2); x[idx] 

Also Sie Fall das Ergebnis der nonzero kann direkt als Indizierung Tupel verwendet werden.

In [566]: x=np.arange(10,20) 

In [567]: idx = np.nonzero(x%2) 

In [568]: idx 
Out[568]: (array([1, 3, 5, 7, 9], dtype=int32),) 

In [569]: x[idx] 
Out[569]: array([11, 13, 15, 17, 19]) 

Aus den nonzero docs

Die entsprechende nicht-Null Werte können mit erhalten werden ::

a[nonzero(a)] 

Wenn Sie eine Liste anstelle eines Arrays benötigen, können Sie werde die .tolist() Methode hinzufügen.

Verwandte Themen