1

h5 ファイルからデータ (正確にはピクセル値) を読み取り、numpy を使用してデータをヒストグラムにプロットしています。ピクセル値の配列には、データなしの値が 99999 あります (それ以外の場合、データの範囲は -40 から 20 です)。手動で設定した最小値と最大値 (それぞれ -40 と 20) に基づいてヒストグラムを作成しているので、データのない値がヒストグラムに表示されません。これで問題ありません。ただし、データに通常の曲線を当てはめたいので、データセットの平均と SD が必要です。numpy.mean と numpy.std でこれらを生成すると、データなしの値が含まれるため、平均値と SD 値が大きくずれ、その後の通常の曲線もずれます。

基本的に、配列から平均値と sd を生成し、特定の値 (つまり、データなしの値: 99999) を無視する方法はありますか? または、配列の値をデータなしの値なしで新しい配列に出力する方法はありますか?

ありがとう

4

2 に答える 2

4

99999 データなしの値を持つこのハッキーな方法ではなく、マスクされた配列にデータを格納する必要があるようです。で検索を開始しnp.maます。

簡単な例:

>>> a = np.array([1, 2, 99999, 3])
>>> a.mean()
25001.25
>>> a_ = np.ma.masked_array(a, a == 99999)
>>> a_.mean()
2.0
>>> a_
masked_array(data = [1 2 -- 3],
             mask = [False False  True False],
       fill_value = 999999)
于 2014-02-17T16:51:27.430 に答える