【问题标题】:Replace a certain value with np.nan or NA or nan in Numpy in python用python中的Numpy中的np.nan或NA或nan替换某个值
【发布时间】:2019-07-18 20:39:55
【问题描述】:

我有一个包含数据的 numpy 数组,但我想用 NA 替换某些特定值。我不想处理被屏蔽的数据,所以我不屏蔽它。这可能吗?

我的数据是一个数据类型为 uint16 的 numpy 数组:

array([[[1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1],
        ...,
        [1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1],
        [1, 1, 1, ..., 1, 1, 1]]], dtype=uint16)

我想用 NA 值替换那些“1”,我使用了下面的代码,但我收到了这个错误:

aa [aa == 1] = np.nan
ValueError: cannot convert float NaN to integer

【问题讨论】:

  • 请包含一个小样本输入和预期输出。 “用 NA 替换某些特定值”是什么意思?
  • 请查看已编辑的帖子。
  • 尝试使用 np.float 而不是 unit16 创建它
  • 编辑后的帖子仍然不包含您期望的示例输出。

标签: python numpy nan na


【解决方案1】:

type(np.nan) 返回<class 'float'>

您需要您的数组为float 类型。

见:Numpy integer nan

【讨论】:

    【解决方案2】:

    您尝试将 NaN 值放入 uint16 类型的数组中,该类型不知道 NaN 值。改用float32 试试同样的方法,它会起作用。

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 2016-02-07
      • 1970-01-01
      • 2015-03-10
      • 2019-04-22
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 2014-05-22
      相关资源
      最近更新 更多