タグ付けされた質問 「threshold」

1
numpyを使用した配列の効率的なしきい値フィルター
特定のしきい値よりも低い要素を削除するには、配列をフィルタリングする必要があります。私の現在のコードは次のようなものです: threshold = 5 a = numpy.array(range(10)) # testing data b = numpy.array(filter(lambda x: x >= threshold, a)) 問題は、ラムダ関数(遅い)を持つフィルターを使用して、一時リストを作成することです。 これは非常に単純な操作であるため、効率的な方法でそれを実行するnumpy関数があるかもしれませんが、私はそれを見つけることができませんでした。 これを実現する別の方法は、配列を並べ替え、しきい値のインデックスを見つけて、そのインデックスからスライスを返すことだと思いましたが、これが小さな入力の場合は高速であるとしても(とにかく目立たないでしょう) )、入力サイズが大きくなるにつれて、その効率は明らかに漸近的に低下します。 何か案は?ありがとう! 更新:私もいくつかの測定を行いましたが、入力が100.000.000エントリの場合、並べ替えとスライスは純粋なPythonフィルターの2倍の速さでした。 In [321]: r = numpy.random.uniform(0, 1, 100000000) In [322]: %timeit test1(r) # filter 1 loops, best of 3: 21.3 s per loop In [323]: %timeit test2(r) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.