47

numpy で数値を NaN に置き換えようとしており、逆を除いて numpy.nan_to_num のような関数を探しています。

それぞれが一意に定義された NoDataValue を持つことができるため、さまざまな配列が処理されると、この数は変化する可能性があります。辞書を使用している人を見たことがありますが、配列は大きく、正と負の両方の浮動小数点数でいっぱいです。これらすべてを何かにロードしてキーを作成しようとするのは効率的ではないと思います。

私はany()またはall()を使用する必要がある次のnumpyを使用してみました。要素ごとに繰り返す必要があることは理解していますが、組み込み関数でこれを実現できることを願っています。

def replaceNoData(scanBlock, NDV):
    for n, i in enumerate(array):
        if i == NDV:
            scanBlock[n] = numpy.nan

NDV は GDAL のデータなしの値であり、配列は numpy 配列です。

マスクされた配列はおそらく進むべき道ですか?

4

1 に答える 1

68
A[A==NDV]=numpy.nan

A==NDV は、A のインデックスとして使用できるブール配列を生成します。

于 2011-07-15T01:17:28.987 に答える