numpy change specific value to null gives error "ValueError: cannot convert float NaN to integer"
numpy change specific value to null gives error "ValueError: cannot convert float NaN to integer"
我有形状为 (1,5,10) 的 numpy 数组。
array([[[ -5, -5, -5, -5, 120, 116, 118, 118, -5, -5],
[ -5, -5, 126, 127, 125, 118, 118, 123, -5, -5],
[ -5, 121, 125, 118, 115, 115, 121, 121, 114, 127],
[112, 118, 108, 111, 110, 112, 104, 102, 103, -5],
[105, 108, 107, -5, -5, -5, -5, -5, -5, -5]]], dtype=int16)
我想将所有 -5 更改为 np.nan 值。
为此,我编写了以下代码:
out_image[out_image == (-5)] = np.nan
但这给了我一个错误:
ValueError: cannot convert float NaN to integer
为什么会出现此错误?以及如何将这些值替换为 nan?
你这样做是因为 out_image
是 pandas.Dataframe
。相反,您可以使用 numpy.where
方法,如下所示:
np.where(out_image == -5, np.NaN, out_image)
您只需要先将其转换为float
即可。
out_image = out_image.astype('float')
out_image[out_image== -5] = np.NAN
我有形状为 (1,5,10) 的 numpy 数组。
array([[[ -5, -5, -5, -5, 120, 116, 118, 118, -5, -5],
[ -5, -5, 126, 127, 125, 118, 118, 123, -5, -5],
[ -5, 121, 125, 118, 115, 115, 121, 121, 114, 127],
[112, 118, 108, 111, 110, 112, 104, 102, 103, -5],
[105, 108, 107, -5, -5, -5, -5, -5, -5, -5]]], dtype=int16)
我想将所有 -5 更改为 np.nan 值。 为此,我编写了以下代码:
out_image[out_image == (-5)] = np.nan
但这给了我一个错误:
ValueError: cannot convert float NaN to integer
为什么会出现此错误?以及如何将这些值替换为 nan?
你这样做是因为 out_image
是 pandas.Dataframe
。相反,您可以使用 numpy.where
方法,如下所示:
np.where(out_image == -5, np.NaN, out_image)
您只需要先将其转换为float
即可。
out_image = out_image.astype('float')
out_image[out_image== -5] = np.NAN