【问题标题】:Recode missing data Numpy重新编码缺失的数据 Numpy
【发布时间】:2011-08-10 13:30:23
【问题描述】:

我正在使用 matplotlib cvs2rec 函数读取人口普查数据 - 工作正常给我一个不错的 ndarray。

但是有几个列,其中所有值都是 dtype |04 的“无”。当我进入 Atpy“TypeError:NoneType 的对象没有 len()”时,这会引起问题。像 '9999'或其他缺失对我有用。在这种情况下,掩码不起作用,因为我将真实数组传递给 ATPY,它不会转换掩码。numpy 中的 Put 函数不适用于无值,这是最好的方法更改值(我认为)。我认为某种布尔数组是可行的方法,但我无法让它工作。

那么,将无值和/或未初始化的 numpy 数组更改为“9999”或其他重新编码之类的东西的好/快速方法是什么?没有掩蔽。

谢谢,

马修

【问题讨论】:

    标签: python arrays numpy missing-data


    【解决方案1】:

    这里有一个解决这个问题的方法,虽然如果你的数据是一个记录数组,你应该只对你的列应用这个操作,而不是整个数组:

    import numpy as np
    # initialise some data with None in it
    a = np.array([1, 2, 3, None])
    a = np.where(a == np.array(None), 9999, a)
    

    请注意,您需要将 None 转换为 numpy 数组才能使其工作

    【讨论】:

    • 不用担心。顺便说一句,如果答案解决了您的问题,那么“接受”它是一种礼貌,以便解决者获得声誉。
    【解决方案2】:

    计算时可以使用掩码数组。并且在将数组传递给ATPY时,可以调用掩码数组的填充(9999)方法将掩码数组转换为普通数组,将无效值替换为9999。

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 2012-06-24
      相关资源
      最近更新 更多