python - 如何删除 numpy.ndarray 中包含非数字值的所有行

标签 python numpy

基本上,我正在做一些数据分析。我在数据集中读取为 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

说明:np.isnan(a) 返回一个与 True 相似的数组,其中 NaN, False 其他地方. .any(axis=1) 将一个 m*n 数组简化为 n,并在整行,~ 反转 True/False 并且 a[ ] 仅选择原始数组中具有 True在括号内。

关于python - 如何删除 numpy.ndarray 中包含非数字值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453141/

相关文章:

python - 如何使用 Python SDK 使用现有视频在 Facebook 中创建视频广告?

python - 在 PyCharm 中以退出代码 137 结束进程

python - pandas.to_datetime() 自动转换为 <M8[ns] 且无法使用 numpy.isnat()

python - 从 numpy 数组中随机选择行

python - 使用 timeit.Timer() 时如何传递函数的参数

python - 有没有办法在 VSCode 中显示所有变量的列表和一个小摘要?

python - 用漂亮的汤解析数据表

python - 如何更改pandas数据框中多索引中的外层索引?

python-2.7 - numpy 数组中连续元素的第一次出现

python - 根据来自另一列 pandas 的相同或更接近的值替换列中的值