web-dev-qa-db-ja.com

Numpy-数値をNaNに置き換えます

私は、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配列です。

マスクされた配列はおそらく行く方法ですか?

28
Jzl5325
A[A==NDV]=numpy.nan

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

42
Paul