用python中的Numpy中的np.nan或NA或nan替换某个值

时间:2019-02-25 12:31:28

标签: python numpy nan na

我有一个包含数据的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

2 个答案:

答案 0 :(得分:2)

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

您需要将数组设置为float类型。

请参阅:Numpy integer nan

答案 1 :(得分:1)

您尝试将NaN值放入类型为uint16的数组中,该类型是不知道NaN值的类型。尝试使用float32进行同样的操作,它将起作用。