numpyでの多重配列内での比較
解決したいこと
trg=np.array([1,2,3])
arr=np.array([[1,2,3],[2,3,4],[1,2,3]])
という二つの配列があった場合に、arr内の各要素がtrgと一致するかの判定をできるだけ速く行いたいです。
(説明下手で申し訳ないですが、この場合[True, False, True]が得たいです。)
自分で試したこと
import numpy as np
import time
trg=np.array([1,2,3], dtype=np.uint8)
arr=np.array([[1,2,3],[2,3,4],[1,2,3]]*1000000, dtype=np.uint8)
st=time.time()
ans=sum((arr==trg).T)==3
print(ans)
print(f'elapsed time: {time.time()-st}')
[ True False True ... True False True]
elapsed time: 0.036267995834350586
これより速くしたいのですが、いい方法があれば教えてもらえませんでしょうか。
0