2012-07-12 15 views

risposta

98
>>> a = np.array([[1,2,3], [4,5,np.nan], [7,8,9]]) 
array([[ 1., 2., 3.], 
     [ 4., 5., nan], 
     [ 7., 8., 9.]]) 

>>> a[~np.isnan(a).any(axis=1)] 
array([[ 1., 2., 3.], 
     [ 7., 8., 9.]]) 

e riassegnare questo a a.

Spiegazione: np.isnan(a) restituisce un array simile con True dove NaN, False altrove. .any(axis=1) riduce un m*n array n con or operazione logica sulle intere file, ~ inverte True/False e a[ ] sceglie solo le righe dall'array originale, che hanno True all'interno delle parentesi.

+0

Impressionante grazie. Sarebbe possibile ottenere una spiegazione su cosa stia facendo? Ancora un po 'nuovo per intorpidire :) – zebra

+0

@zebra - spiegato. – eumiro

+3

'np.isfinite' è anche utile in questo caso, così come quando vuoi eliminare i valori di' ± Inf'. Non richiede il '' ', poiché restituisce true solo per i realistici finiti. – naught101

Problemi correlati