简体   繁体   English

如果满足值条件,则在numpy数组中将值转换为np.nan

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM