この質問はthis oneと似ていますが、私のケースではそれを適用する方法が見つかりませんでした。値のリストと一致する行を見つける効率的な方法
私はかなり大きなNx3
の整数の行列を持っています。私は、整数のリストに一致する行のリストを見つける必要があります。最終的な目標は、行列をフィルタリングして、これらの値の1つを含む行を削除することです。
現在、私が出すことができる最高のものは、整数のリストにfor
ループがあり、行を見つけるのにnumpy.logical_and.reduce
です。私はより低レベルの言語に行かなくても、より効率的な方法がなければならないと信じています。
import numpy as np
matrix = np.random.randint(0,100000,(50000, 3))
values_to_find = np.random.randint(0,100000,10000)
matches = np.ones(len(matrix), bool)
for value in values_to_find:
matches = matches & np.logical_and.reduce(matrix != value, axis=1)
new_matrix = matrix[matches]
効率的でエレガントな方法は何ですか?
したがって、value_to_findの値のいずれかを保持する行が必要ですか? – Dark