我想在numpy中用NaN替换一个数字,并寻找类似于numpy.nan_to_num
但是相反的函数。
由于每个数组都可以具有唯一定义的NoDataValue,因此该数字可能会更改。我看到过人们使用字典,但这些数组很大,并且填充了正负浮点数。我怀疑尝试将所有这些内容加载到任何东西中以创建键不是有效的方法。
我尝试使用以下方式,但numpy要求我使用any()
或all()
。我意识到我需要逐个元素地迭代,但希望能够使用内置函数实现此操作。
def replaceNoData(scanBlock, NDV):
for n, i in enumerate(array):
if i == NDV:
scanBlock[n] = numpy.nan
NDV是GDAL的无数据值,array是一个numpy数组。
也许使用掩蔽数组是正确的方法?
array
作为变量以避免与 np.array 混淆,但最重要的是,与典型的 numpy 索引和广播相比,速度会非常慢。 - Paul