在其他 numpy 数组中查找 numpy 数组

2024-01-08

我需要在一个更大的 numpy 数组中找到一个小的 numpy 数组。例如:

import numpy as np
a = np.array([1, 1])
b = np.array([2, 3, 3, 1, 1, 1, 8, 3, 1, 6, 0, 1, 1, 3, 4])

一个功能

find_numpy_array_in_other_numpy_array(a, b)

应该返回索引

[3, 4, 11]

代表完整的 numpy 数组a出现在完整的numpy数组中b.

有一个蛮力方法可以解决这个问题,在处理非常大的数据时速度很慢b arrays:

ok = []
for idx in range(b.size - a.size + 1):
    if np.all(a == b[idx : idx + a.size]):
        ok.append(idx)

我正在寻找一种更快的方法来查找完整数组的所有索引a在数组中b。快速方法还应该允许其他比较功能,例如找出最坏情况下的差异a and b:

diffs = []
for idx in range(b.size - a.size + 1):
    bi = b[idx : idx + a.size]
    diff = np.nanmax(np.abs(bi - a))
    diffs.append(diff)

通用解决方案设置

对于通用解决方案,我们可以创建2D滑动窗口数组,然后执行相关操作 -

from skimage.util.shape import view_as_windows

b2D = view_as_windows(b,len(a))

NumPy equivalent implementation https://stackoverflow.com/a/40085052/.

问题#1

然后,要解决匹配索引问题,很简单 -

matching_indices = np.flatnonzero((b2D==a).all(axis=1))

问题#2

为了解决第二个问题,它很容易映射,记住任何获取输出元素的 ufunc 归约操作都将被转换为使用该 ufunc 的建议解决方案中沿第二轴的归约axis争论 -

diffs = np.nanmax(np.abs(b2D-a),axis=1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在其他 numpy 数组中查找 numpy 数组 的相关文章

随机推荐

  • 当代码移动到 Angular 组件时,Owl 轮播不起作用

    我的 Angular 版本 Angular 7 我刚刚开始学习 Angular 并尝试在我的 Angular 项目中使用下载的 Bootstrap 模板 我的owl carousel打开时效果很好index html在我的 Angular
  • 如何在 php 的 ssh2 函数中使用 pem 文件

    我需要通过 php 的 ssh2 函数连接到一些 Amazon EC2 实例以获取一些信息并将其显示在我的后台 ssh2 函数中是否有一种方法可以执行与通过命令行 ssh 连接时相同的操作 ssh i path to file key pe
  • 如何修复 mat-tab 的标题

    我有 5 个 mat tab 每个选项卡都有大量数据 因此滚动将添加到该窗口 有什么方法可以修复 mat tab 的标题并让内容可以滚动 我尝试放置位置 固定 位置 粘在里面 ng deep mat tab label 但这似乎并不能解决问
  • 带有 ObjectDatasource UpdateMethod 的 GridView

    我有一个 ASP NET WebForms 页面 其中包含ASPxGridView and an ObjectDataSource
  • Java 8 https 连接在某些站点上失败

    我无法访问某些 https 资源 请帮助使 https 调用可靠 我在这里放置的示例是通过 Firefox 浏览器进行测试的 以确保它们正常工作 java version openjdk version 1 8 0 121 OpenJDK
  • 微任务是否保证在它们排队的同一动画帧内触发?

    例如 Promise 使用微任务 我验证了here https mail mozilla org pipermail es discuss 2016 April 045905 html它们可以在动画帧结束之前完成 在 Chrome 中 我说
  • JSP中如何获取浏览器信息?

    如何使用 JSP 获取客户端 IP 和浏览器信息 以下 jsp 将输出您的 IP 地址和用户代理 Your user agent is br Your IP address is br 要找出用户正在使用的浏览器和 或操作系统 请解析用户代
  • 在python中简单编辑二进制文件

    这应该很容易 但我一直无法找到这个问题的答案 使用python 我想将二进制文件读入内存 修改文件的前四个字节 然后将文件写回 必须有一种简单的方法来编辑四个微不足道的字节 正确的 为什么读取整个文件要改变开头的四个字节 这不应该起作用吗
  • 如何让重音字母在 bash 上真正起作用?

    我在 cygwin 上安装的 bash 无法正确处理重音字母 我尝试添加 set input meta on to accept 8 bit characters set output meta on to show 8 bit chara
  • 仅读取文件的下一行一次

    我有一个应用程序 它从文本文件中读取信息 然后对它们进行分类并将它们放入数据库中 对于一个类别 我需要检查当前行之后的行并查找某个关键字 我如何阅读这一行 当流阅读器当前行已打开时 应该会发生这种情况 我在 VS2010 上使用 C Edi
  • 确保在 MVVM WPF 应用程序中的 UI 线程上调用 OnPropertyChanged()

    在我使用 MVVM 模式编写的 WPF 应用程序中 我有一个后台进程来做这件事 但需要从它获取状态更新到 UI 我使用的是 MVVM 模式 因此我的 ViewModel 实际上对向用户呈现模型的视图 UI 一无所知 假设我的 ViewMod
  • OS X 支持 POSIX 会话吗?

    我正在开发一个可以充分利用 POSIX 会话的项目 如所述here http pubs opengroup org onlinepubs 9699919799 functions setsid html 但我现在不确定我是否误解了这个概念和
  • 基于 Access 中保存的 SELECT 查询更新查询?

    使用 UPDATE 查询 是否可以引用存储的选择查询 我想完成这样的事情 UPDATE WHERE IN MY STORED PROCEDURE 也许是这样的 UPDATE WHERE ID IN SELECT ID FROM MyStor
  • Android:服务自动重启

    我正在使用一项可以节省费用的服务GPS纬度不断地 但很多时候服务会自动重新启动 这会导致数据丢失 那么有什么办法可以限制服务重新启动呢 或任何解决此问题的想法 您可以通过在服务中提及该服务来创建新流程Manifest file as and
  • SwiftUI - 动画视图扩展(显示/隐藏)

    我有一个View其中包含一个HStack and a DatePicker 当您点击HStack the DatePicker显示 隐藏 我想为这个动作设置动画 就像 iOS 日历的新事件视图中开始和结束行的动画一样 struct Time
  • Excel VBA - 日期格式转换

    我遇到了一项具有挑战性的任务 使用许多解决方法都无法解决该任务 在一列中我有日期 日期可以采用以下三种格式 1 简单的日 月 年 2 dd mm yy 但周围可能有 之前 之后或关于 字样 任何 其中之一 在这种情况下我们只需要删除这些词即
  • 文本区域最大宽度

    我遇到了文本区域最大宽度的问题 我需要它不超过 table cell two调整大小时的宽度 在此示例中 JSfiddle 示例 http jsfiddle net no1lov3sme t6gzrr7u 1 HTML div class
  • 为什么我需要 Java 中的 MySQL 连接器?

    总是当我想使用使用 MySQL 数据库的程序时 它会强制我安装 MySQL 连接器或mysql 连接器 java jar 为什么我需要 MySQL 连接器以及它是如何工作的 JDBC 是 Java 程序用来访问关系数据库的库 您可以使用它来
  • 在另一个控制器 Ember 中调用控制器方法

    我正在使用 Ember 的 Need Api 来调用另一个控制器中一个控制器的方法 我能够获取控制器的实例 但是当我调用它的方法时 它会返回此错误TypeError Object object Object has no method 我就
  • 在其他 numpy 数组中查找 numpy 数组

    我需要在一个更大的 numpy 数组中找到一个小的 numpy 数组 例如 import numpy as np a np array 1 1 b np array 2 3 3 1 1 1 8 3 1 6 0 1 1 3 4 一个功能 fi