Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 替换包含NaN的numpy数组中的值_Python_Numpy_Nan - Fatal编程技术网

Python 替换包含NaN的numpy数组中的值

Python 替换包含NaN的numpy数组中的值,python,numpy,nan,Python,Numpy,Nan,在运行上面的代码时,我得到了foll。警告,我理解这个警告的原因,但是如何避免呢 运行时警告:在较大值中遇到无效值存储有效值的索引(非NAN)。首先,我们将使用这些索引索引到数组中,并执行比较以获得掩码,然后再次使用该掩码索引到这些索引中,以检索回与原始顺序对应的索引。使用原始的有序索引,我们可以将输入数组中的元素分配给NaNs 因此,实施/解决方案将是:- aa = np.array([2.0, np.NaN]) aa[aa>1.0] = np.NaN 样本运行- idx = np.f

在运行上面的代码时,我得到了foll。警告,我理解这个警告的原因,但是如何避免呢


运行时警告:在较大值中遇到无效值

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

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

aa = np.array([2.0, np.NaN])
aa[aa>1.0] = np.NaN
样本运行-

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

您是要替换numpy数组中的NaN值,还是只删除运行时警告?如果是后者,
np.seterr(invalid='ignore')
就足够了。请参阅Py3中的内容,与
np.nan的比较会产生False而没有警告。这对多维数组有效吗?我之所以出错,是因为
idx
使用线性索引。@Darcy对于多维数组,您需要使用
np。其中
将为我们提供所有DIM的索引,然后使用这些索引和分配。
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])