【问题标题】:Filtering Nan with numpy用 numpy 过滤 Nan
【发布时间】:2022-12-13 12:09:57
【问题描述】:

我有一个形状为 (115, 2) 的数组,每列有 115 个数字。第二列中的一些数字是 NaN。如何使用 numpy 过滤两列以删除第二列中的 NaN 和第一列中的相应数字?

例子

array([[10., 10.],
       [20., 13.],
       [ 5., nan],
       [ 6., nan]])

array([[10., 10.],
       [20., 13.]])

我想过滤两列以排除第二列为 NaN 的值。我想保留形状,这样我就可以对相关性等数字进行统计。有任何想法吗?

如果我尝试 ~np.isnan 数组会失去它的形状,我想保留它。请不要熊猫!

【问题讨论】:

  • 完成后形状应该是什么?
  • 它将是具有剩余数字 (115-x) 和两列的行数

标签: python numpy nan


【解决方案1】:
arr[~np.isnan(arr[:,1])]

然后

过滤行但仅来自一维布尔数组

【讨论】:

  • 谢谢!我不确定过滤行是什么意思,但只能从一维布尔数组中过滤。你能解释一下吗?
【解决方案2】:

说,数据是你的 numpy 数组。然后 new-data 将是您的 NaN 删除的 numpy 数组

new_data = data[np.logical_not(np.isnan(data))]

【讨论】:

    猜你喜欢
    • 2014-07-01
    • 2020-09-04
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 2017-02-08
    • 2014-09-22
    相关资源
    最近更新 更多