gpt4 book ai didi

python - 替换 numpy 数组中包含 NaN 的值

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:15 34 4
gpt4 key购买 nike

aa = np.array([2.0, np.NaN])
aa[aa>1.0] = np.NaN

运行上面的代码后,我得到了以下结果。警告,我明白这个警告的原因,但是如何避免它?

运行时警告:更大的值遇到无效

最佳答案

存储有效索引(非 NaN)。首先,我们将使用这些索引来索引数组并执行比较以获得掩码,然后再次使用该掩码索引这些索引以检索与原始顺序相对应的索引。使用原始排序索引,我们可以将输入数组中的元素分配给 NaN

因此,实现/解决方案将是 -

idx = np.flatnonzero(~np.isnan(aa))
aa[idx[aa[idx] > 1.0]] = np.nan

示例运行 -

In [106]: aa  # Input array with NaNs
Out[106]: array([ 0., 3., nan, 0., 9., 6., 6., nan, 18., 6.])

In [107]: idx = np.flatnonzero(~np.isnan(aa)) # Store valid indices

In [108]: idx
Out[108]: array([0, 1, 3, 4, 5, 6, 8, 9])

In [109]: aa[idx[aa[idx] > 1.0]] = np.nan # Do the assignment

In [110]: aa # Verify
Out[110]: array([ 0., nan, nan, 0., nan, nan, nan, nan, nan, nan])

关于python - 替换 numpy 数组中包含 NaN 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184485/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com