ゴール: 私は、多くの重複した距離の大きな1d配列(3000000+)の距離を持っています。私は配列にn回現れるすべての距離を返す最も速い関数を書くことを試みています。私はnumpyで関数を書いていますが、コードの1行にボトルネックがあります。 2400の異なる大規模配列のforループで計算が行われるため、迅速なパフォーマンスが問題となります。Python/Numpyはすでに大きな配列のための最も速いコードを書いていますか?
import numpy as np
for t in range(0, 2400):
a=np.random.randint(1000000000, 5000000000, 3000000)
b=np.bincount(a,minlength=np.size(a))
c=np.where(b == 3)[0] #SLOW STATEMENT/BOTTLENECK
return c
期待される結果: [2000000000,3005670000,2000000000,12345667,4000789000,12345687,12345667,2000000000,12345667] Iバックの配列を予想距離の1Dアレイを考えます[ 2000000000,12345667]を照会すると、メイン配列に3回現れるすべての距離の配列が返されます。
どうすればよいですか?
あなたがちょうどあなたができるだけ速く欲しいものを買ってあげるセットにリスト全体を変換する場合はかなり確信して。 [This](https://stackoverflow.com/a/12897477/3715522)は良い指針を与えるはずです。 – MCBama
リストをセットに変換することはまったく機能しません。それは重複を取り除き、N回出現するものを数えないようにします。 –
Ah。私はその質問を誤解した。 – MCBama