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

Susan Sarandon
发布: 2024-10-21 18:17:30
原创
514 人浏览过

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中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!