以 10 为底的 int() 的无效文字:'nan' 尝试替换 NaN 中的 0 时
invalid literal for int() with base 10: 'nan' when trying to replace 0 in NaN
我有 7 个维度的 nd 数组。我想在每个波段中将 0 值更改为 None 值 (nan)。
我试过这样:
band[band == 0] = "nan"
但后来我收到错误信息:
ValueError: invalid literal for int() with base 10: 'nan'
我尝试将 nan 更改为 None 和 np.nan 但是对于 none 我有以下错误:
TypeError: int() argument must be a string, a bytes-like object or a
number, not 'NoneType'
和 np.nan:
ValueError: cannot convert float NaN to integer
数组值类型为 numpy.int64 。
我的最终目标是能够将 0 值更改为数组的 nan 值。
您必须将数组数据类型更改为 float
。这是一个例子:
import numpy as np
a = np.array([0,1,2,3],dtype=float)
a[a==0] = np.nan
我有 7 个维度的 nd 数组。我想在每个波段中将 0 值更改为 None 值 (nan)。
我试过这样:
band[band == 0] = "nan"
但后来我收到错误信息:
ValueError: invalid literal for int() with base 10: 'nan'
我尝试将 nan 更改为 None 和 np.nan 但是对于 none 我有以下错误:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
和 np.nan:
ValueError: cannot convert float NaN to integer
数组值类型为 numpy.int64 。
我的最终目标是能够将 0 值更改为数组的 nan 值。
您必须将数组数据类型更改为 float
。这是一个例子:
import numpy as np
a = np.array([0,1,2,3],dtype=float)
a[a==0] = np.nan