2012-07-12 6 views

Antwort

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.]]) 

und dies a zuweisen.

Erläuterung: np.isnan(a) gibt ein ähnliches Array mit True zurück, wobei NaN, False woanders ist. .any(axis=1) reduziert eine m*n Array n mit einer logischen Operation an den or ganzen Reihen, ~ invertiert True/Falsea[ ] und wählt nur die Zeilen aus der ursprünglichen Anordnung, die True innerhalb der Klammern aufweisen.

+0

Super danke. Wäre es möglich, eine Erklärung dafür zu bekommen, was das macht? Immer noch ein wenig zu numpy :) – zebra

+0

@zebra - erklärt. – eumiro

+3

'np.isfinite' ist auch in diesem Fall nützlich, genauso wie wenn man '± Inf'-Werte loswerden möchte. Es erfordert nicht das "~", da es nur für endliche Reelle wahr ist. – naught101

Verwandte Themen