这个问题类似于this one,但在我的案例中我无法找到适应它的方法。
我有一个非常大的Nx3
整数矩阵。我需要找到与整数列表匹配的行列表。最终目标是过滤矩阵以删除包含其中一个值的行。
现在,我能提出的最好的方法是在我的整数列表中使用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]
什么是更有效和更优雅的方式?