在其他 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 数组 的相关文章

  • KFold 和 ShuffleSplit CV 有什么区别?

    看起来 KFold 每次迭代对象时都会生成相同的值 而 Shuffle Split 每次都会生成不同的索引 它是否正确 如果是这样 其中一个相对于另一个有什么用处 cv cross validation KFold 10 n folds 2
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • 子进程改变目录

    我想在子目录 超级目录中执行脚本 我需要首先进入该子目录 超级目录 我无法得到subprocess进入我的子目录 tducin localhost Projekty tests ve python Python 2 7 4 default
  • Python 遍历目录树的方法是什么?

    我觉得分配文件和文件夹并执行 item 部分有点黑客 有什么建议么 我正在使用Python 3 2 from os import from os path import def dir contents path contents list
  • 将 API 数据存储到 DataFrame 中

    我正在运行 Python 脚本来从 Interactive Brokers API 收集金融市场数据 连接到API后 终端打印出请求的历史数据 如何将数据保存到数据帧中而不是在终端中流式传输 from ibapi wrapper impor
  • Python sqlite3游标没有属性commit

    当我运行这段代码时 path Scripts wallpapers single png conn sqlite3 connect Users Heaven Library Application Support Dock desktopp
  • Pyspark 数据框逐行空列列表

    我有一个 Spark 数据框 我想创建一个新列 其中包含每行中具有 null 的列名称 例如 原始数据框是 col 1 col 2 col 3 62 45 null 62 49 56 45 null null null null null
  • 使用 Scipy imsave 将 Numpy 数组保存到图像时保留未更改的数据

    使用 Scipy 保存二维 Numpy 数组 单个值 时toimage or imsave像素值与 Numpy 数组中的像素值不完全匹配 相反 在某些区域 主要是边缘 图像算法似乎使用某种插值 是否有一个选项可以停止插值并保留准确的数据 例
  • 在Python中创建一个新表

    我正在尝试从数控机床中提取数据 事件每毫秒发生一次 我需要过滤掉一些用管道 分隔的变量分隔符 PuTTy exe 程序生成的日志文件 我尝试阅读熊猫 但列不在同一位置 df pd read table data log sep 日志文件的一
  • 用Python中的嵌套for循环替换重复的if语句?

    在我编写的下面的代码中 n 4 所以有五个 if 语句 所以如果我想将 n 增加到 比如说 10 那么就会有很多 if 语句 因此我的问题是 如何用更优雅的东西替换所有 if 语句 n p 4 5 number of trials prob
  • 如何修复错误“AttributeError:‘模块’对象在 python3 中没有属性‘客户端’?

    以下是我的代码 import http h1 http client HTTPConnection www bing com 我认为没问题 但是 python 给了我以下错误 AttributeError 模块 对象没有属性 客户端 我想知
  • 如何从 Python 中指定运行程序的输入文件?

    我正在编写一个外部脚本 以通过笔记本电脑上的 Python mrjob 模块 而不是在 Amazon Elastic Compute Cloud 或任何大型集群上 运行 mapreduce 作业 我读自mrjob文档 http packag
  • Matplotlib 图例不工作

    自从升级 matplotlib 以来 每当尝试创建图例时 我都会收到以下错误 usr lib pymodules python2 7 matplotlib legend py 610 UserWarning Legend does not
  • 如何检查列表是否为空?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 例如 如果通过以下内容 a 我如何检查是否a是空的 if not a print Lis
  • 从 IMDbPy 结果中的片目中获取电影 ID

    我正在尝试创建一个数据集 允许我根据 Python IMDb API 中的演员 ID 和电影 ID 加入演员和电影 现在 我正在尝试从演员的电影作品中提取电影 ID 列表 但无法做到 例如 我知道 Rodney Dangerfield 在
  • Spark中的count和collect函数抛出IllegalArgumentException

    当我使用时抛出此异常时 我尝试在本地 Spark 上加载一个小数据集count 在 PySpark 中 take 似乎有效 我试图搜索这个问题 但没有找到原因 看来RDD的分区有问题 有任何想法吗 先感谢您 sc stop sc Spark
  • numpy.cov() 返回意外的输出

    我有一个 X 数据集 有 9 个特征和 683 行 683x9 我想获取这个 X 数据集和另一个与 X 具有相同形状的数据集的协方差矩阵 我使用np cov originalData generatedData rowvar False 代
  • 在 Python 的 Textmate 中突出显示尾随空格?

    我想做类似的事情this http remysharp com 2008 03 30 trailing white space in textmate Textmate 提示 这样当我在 Python 中编写代码时 尾随空白总是以某种方式突
  • 如何使用Featuretools按列值从单个数据框中的多个列创建特征?

    我正在尝试根据之前的结果来预测足球比赛的结果 我在 Windows 上运行 Python 3 6 并使用 Featuretools 0 4 1 假设我有以下代表结果历史记录的数据框 原始数据框 https i stack imgur com
  • 在游戏中实现功能

    我在完成这部分作业时遇到了麻烦 我必须宣布游戏的获胜者 然后输入到函数中 输入所有 if 语句后 我必须创建一个函数def playGame 这必须包括 showRules user getUserChoice computer getCo

随机推荐

  • 当代码移动到 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