【问题标题】:Delete rows that have "nan" in a 66180L X 69L numpy.ndarray删除 66180L X 69L numpy.ndarray 中具有“nan”的行
【发布时间】:2023-03-26 20:05:01
【问题描述】:

我有一个 600L X 50L numpy.ndarray。基于第 8 列,如果它有“nan”作为值,我想从 numpy.ndarray 中删除整行。

例如,如果第 8 列有 10 个“nan”作为其值,我将删除这些“nan”所在的整行。

我该怎么做?

我知道如何使用过滤器按钮执行此操作,但我很擅长,但想学习如何在 python 中使用 numpy 执行此操作。

谢谢:)

【问题讨论】:

标签: python numpy


【解决方案1】:

这已经回答here,但我会告诉你如何做到这一点:

例如你有以下数组:

In [3]: arr = np.eye(4)
In [4]: arr[1,0]=1

In [5]: arr
Out[5]:
array([[1., 0., 0., 0.],
       [1., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

然后用

过滤
In [30]: arr[arr[:,0]!=0,:]
Out[30]:
array([[1., 0., 0., 0.],
       [1., 1., 0., 0.]])

当然,您可以对 nan 值执行相同操作。

【讨论】:

  • 非常感谢! @NicoAlbers
  • 不客气!但这并不难找到已经被接受的答案,请考虑在下次遇到此类问题时再次搜索;-)大多数情况下已经有解决方案:-)
  • 会做,会更好地为未来写搜索问题! :) @NicoAlbers
猜你喜欢
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 2021-11-08
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
相关资源
最近更新 更多