首页  >  文章  >  后端开发  >  如何在 Numpy 数组中高效搜索匹配行?

如何在 Numpy 数组中高效搜索匹配行?

Susan Sarandon
Susan Sarandon原创
2024-10-21 18:17:30514浏览

How to Efficiently Search for a Matching Row in a Numpy Array?

如何高效检查 Numpy 数组是否匹配行

要确定 Numpy 数组是否包含特定行,终止操作至关重要一旦找到匹配,就避免不必要的迭代。

可能的解决方案

  • 使用 .tolist(): 转换数组到 Python 列表并使用“in”运算符。如果匹配行位于数组开头附近,此方法特别有效。
  • 使用视图: 创建数组的视图,从而能够与目标行进行逐行比较。
  • 迭代 Numpy 列表: 生成数组元素,根据目标行测试每一行。然而,这种方法相对较慢。
  • 利用 numpy 逻辑函数:应用 np.equal() 执行逐元素比较,然后使用 .all(1).any( ) 方法来确定是否有任何行与目标匹配。

性能比较

在不同大小的数组上测试这些方法表明 numpy 例程在搜索方面始终表现出色速度。所花费的时间与是否找到或错过匹配项无关。

例如,numpy“view”方法在大约 0.01 秒内搜索 300,000 x 3 元素数组,无论目标行位于何处或

相比之下,Python 的“in”运算符对于早期匹配(例如 0.003 秒)会明显更快,而生成器技术对于详尽搜索则明显较慢(例如 6.47 秒)。

结论

为了在 Numpy 数组中进行高效的行匹配,建议将 np.equal() 与 .all(1).any() 结合使用,因为它无论搜索结果如何,都能提供一致的性能。

以上是如何在 Numpy 数组中高效搜索匹配行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn