数値をnumpyで置き換えようとしていますが、逆の場合を除いてnumpy.nan_to_numのような関数を探しています。Numpy - 数値をNaNに置き換えます
番号は、それぞれ異なる配列が処理されるときに、NoDataValueを一意に定義できるため、変更される可能性があります。私は辞書を使っている人たちを見ていますが、配列は大きく、正と負の両方の浮動小数点数でいっぱいです。私は、キーを作成するためにこれらのすべてをロードすることは効率的ではないと考えています。
私はany()またはall()を使用する必要があり、numpyを使用してみました。私は要素を賢明に反復する必要があることを認識していますが、組み込み関数がこれを達成できることを願っています。
def replaceNoData(scanBlock, NDV):
for n, i in enumerate(array):
if i == NDV:
scanBlock[n] = numpy.nan
NDVはGDALのデータ値ではなく、配列はnumpy配列です。
マスクされたアレイはおそらく行く方法ですか?
ための指標として用いることができるブール配列を生成します。それは正しく動作しませんか? –
@Chris Greggこの解決方法ではインデントが必要で、配列を返す必要はありません(np.arrayとの混乱を避けるために変数として 'array'を使用することは避けてください)が、最も重要なことはひどくなります典型的なnumpyの索引付けおよび放送と比較して遅い。 – Paul
@Paul私の懸念はスピードだったので、以下の答えに感謝します。変数を使ってコードを明確にするだけで、配列の使用も避けています。 – Jzl5325