我正在使用数据集,其中不存在的值显示为负数。我想将这些值转换为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]])
干杯
答案 0 :(得分:2)
np.nan
是一个浮点数,因此您需要在执行boolean masking之前将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]])