0

我有 7 维的 nd-array。我想在每个波段中将 0 值更改为无值(nan)。

我试过这样:

band[band == 0] = "nan"

但后来我收到错误消息:

ValueError:int() 的无效文字,基数为 10:'nan'

我试图将 nan 更改为 None 和 np.nan 但对于 none 我有以下错误:

TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“NoneType”

对于 np.nan:

ValueError: cannot convert float NaN to integer

数组值类型是 numpy.int64 。

我的最终目标是能够将数组的 0 值更改为 nan 值。

4

1 回答 1

1

您必须将数组数据类型更改为float. 这是一个例子:

import numpy as np
a = np.array([0,1,2,3],dtype=float)
a[a==0] = np.nan
于 2021-11-14T13:13:42.870 回答