根据条件将numpy数组的值设置为NaN

4
我正在处理一个数据集,其中不存在的值显示为负数。我想将这些值转换为np.nan值,但我无法弄清楚如何操作。此条件为(array < 0)
数组的示例是:
import numpy as np

array = np.array([[-1,  1, -1,  1],
                  [ 1, -1, -1,  1],
                  [ 1, -1, -1, -1]])

然后被转换为:

np.array([[np.nan,      1, np.nan,      1],
          [     1, np.nan, np.nan,      1],
          [     1, np.nan, np.nan, np.nan]])

干杯

1个回答

6

np.nan 是一个浮点数,因此在进行布尔掩码索引数组之前需要将array转换为浮点数。

isinstance(np.nan, float)  # True

array = array.astype(float)
array[array < 0] = np.nan
array

输出

array([[nan,  1., nan,  1.],
       [ 1., nan, nan,  1.],
       [ 1., nan, nan, nan]])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接