我正在用numpy替換NaN中的一個數字,並且正在尋找像numpy.nan_to_num這樣的函數,除了相反。Numpy - 用NaN替換一個數字
當處理不同的數組時,數字可能會發生變化,因爲每個數組都可以唯一地定義NoDataValue。我看到有人在使用字典,但是陣列很大,並且都有正面和負面的花車。我懷疑嘗試將所有這些加載到任何東西來創建密鑰是沒有效率的。
我嘗試使用以下和numpy要求我使用任何()或所有()。我意識到我需要迭代元素明智,但希望內置函數可以實現這一點。
def replaceNoData(scanBlock, NDV):
for n, i in enumerate(array):
if i == NDV:
scanBlock[n] = numpy.nan
NDV是GDAL的無數據值,數組是一個numpy數組。
是一個蒙面陣列的方式可能嗎?
索引,我不知道我知道什麼是錯的,你提供的解決方案布爾矩陣。它不能正常工作嗎? –
@Chris Gregg這個解決方案需要一些縮進,不需要返回數組(因爲它是就地的),應該避免使用'array'作爲變量來避免與np.array混淆,但最重要的是,將會非常糟糕與典型的numpy索引和廣播相比較慢。 – Paul
@Paul我的關注是速度,非常感謝下面的答案。我使用變量只是爲了使代碼更清晰,我也會避免使用數組。 – Jzl5325