107

基本的に、私はいくつかのデータ分析を行っています。データセットを numpy.ndarray として読み込みましたが、一部の値が欠落しています (そこに存在しない、存在するNaN、または " " と書かれた文字列であるためNA)。

このようなエントリを含むすべての行を消去したいと思います。numpy ndarray でそれを行うにはどうすればよいですか?

4

1 に答える 1

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

これをに再割り当てしaます。

説明:where 、他の場所でnp.isnan(a)同様の配列を返します。配列を行全体に対する論理演算で縮小し、元の配列から括弧内にある行だけを反転して選択します。TrueNaNFalse.any(axis=1)m*nnor~True/Falsea[ ]True

于 2012-07-12T13:46:17.153 に答える