基本的に、私はいくつかのデータ分析を行っています。データセットを numpy.ndarray として読み込みましたが、一部の値が欠落しています (そこに存在しない、存在するNaN、または " " と書かれた文字列であるためNA)。
このようなエントリを含むすべての行を消去したいと思います。numpy ndarray でそれを行うにはどうすればよいですか?
>>> 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