比较一维整数数组与二维数组中的行

时间:2020-09-23 22:11:51

标签: python numpy optimization

我有一段正在运行的代码,但是目前是一个瓶颈,我想知道是否有更聪明的方法来实现它。

我有一个0到20之间的整数的一维数组,长度为20到1000(它有所不同),我试图将它与一组存储在2D数组中的一维数组进行比较。 我希望在2D数组中找到与1D数组完全匹配的任何行。

我目前执行此操作的方法如下:

res = np.mean(one_d_array == two_d_array,axis=1) == 1

这种方法的问题是,即使这些行在第一个元素(第二个元素等等)上不匹配,它也会比较所有行中的所有元素。这当然效率很低。 我可以通过遍历各行并分别比较每一行来对此进行补救,然后只要一个元素为假,我就可以停止比较。但是,然后我会陷入缓慢的for循环,这也不理想。

所以我想知道还有其他聪明的方法可以同时使用这两种方法吗?

1 个答案:

答案 0 :(得分:1)

numpy具有一些有用的内置函数来检查矩阵/向量的相等性,这大约是以前的两倍:

3001