[英]Converting values to np.nan in a numpy array if a condition for value is met
I'm working with a dataset where non existent values show up as a negative number. 我正在使用不存在的值显示为负数的数据集。 I want to convert these values to np.nan values but I can't figure out how.
我想将这些值转换为np.nan值,但我不知道如何。 The condition for this is
(array < 0)
. 此条件为
(array < 0)
。
An example of what would happen to the array would be: 该数组将发生的示例如下:
import numpy as np
array = np.array([[-1, 1, -1, 1],
[ 1, -1, -1, 1],
[ 1, -1, -1, -1]])
To then be converted to: 要转换为:
np.array([[np.nan, 1, np.nan, 1],
[ 1, np.nan, np.nan, 1],
[ 1, np.nan, np.nan, np.nan]])
Cheers 干杯
np.nan
is a float so you need to convert array
to float before doing the boolean masking . np.nan
是一个float,因此您需要在执行布尔掩码之前将array
转换为float。
isinstance(np.nan, float) # True
array = array.astype(float)
array[array < 0] = np.nan
array
outputs 输出
array([[nan, 1., nan, 1.],
[ 1., nan, nan, 1.],
[ 1., nan, nan, nan]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.