基本的に、私はいくつかのデータ分析を行っています。データセットを 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)
同様の配列を返します。配列を行全体に対する論理演算で縮小し、元の配列から括弧内にある行だけを反転して選択します。True
NaN
False
.any(axis=1)
m*n
n
or
~
True/False
a[ ]
True