私は、閾値以下の「不良値」をデフォルト値に置き換えようとしています(例えばNaNに設定するなど)。 私は1000k値以上のnumpy配列をunsingしています - そのためパフォーマンスが問題です。リストの値の上下をPythonのデフォルト値に置き換えますか?
私のプロトタイプは2つのステップで動作しますが、1つのステップでこれを行うためのpssoibilityはありますか?他の多くの機能と同様に、この関連質問(Pythonic way to replace list values with upper and lower bound (clamping, clipping, thresholding)?)
にコメントしたように
import numpy as np data = np.array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]) upper_threshold = 7 lower_threshold = 1 default_value = np.NaN # is it possible to do this in one expression? data[data > upper_threshold] = default_value data[data < lower_threshold] = default_value print data # [ nan 1. 2. 3. 4. 5. 6. 7. nan nan]
、np.clipは、Pythonであり、それは、方法をarr.clipする延期します。メソッドがコンパイルされた通常の配列の場合、高速になります(約2倍)。 - hpaulj
事前に感謝します。
ああ、私は 'data [upper_threshold> data> upper_threshold]] = default_value'を試してエラーを発生させました。これは複数の条件を追加する方法です - ありがとうございます。 – ppasler
'> ...>'はスカラーPython式でのみ動作します。 'numpy'は明示的に'または/および 'を必要とします。 '()'も重要です。 – hpaulj