回答问题

基本上,我正在做一些数据分析。我在数据集中读取为 numpy.ndarray 并且缺少一些值(要么只是不存在,要么是NaN,要么是写成“NA”的字符串)。

我想清除所有包含此类条目的行。我如何使用 numpy ndarray 做到这一点?

Answers

>>> 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

解释:np.isnan(a)返回一个与True类似的数组,其中NaN,False其他地方。.any(axis=1)通过对整行的逻辑or操作将m*n数组减少为n,~反转True/False并且a[ ]仅选择原始数组中的行,其中括号内有True

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐