查找二维 numpy 数组中的共同元素

2024-03-18

如果我有两个(或更多)二维数组,如何在给定行号的情况下仅获取数组之间的公共元素。例如,我有以下格式的数组:

time, position, velocity, acceleration

我想让两个数组只具有相同的时间元素,所以第 0 行。我可以使用

np.intersect1d(array1[:, 0], array2[:, 0])

它给出了所有公共时间,但我想从 array1/2 中提取所有匹配的行/列或删除非公共时间元素。到底array1 and array2将具有完全相同的尺寸,所以我可以去:

pos_difference = array1[:, 1] - array2[:, 1]

数组的大小可以不同,例如:

array1 = [[1, 100.0, 0.0, 0.0], [2, 110.0, 0.0, 0.0], [3, 120.0, 0.0, 0.0]]
array2 = [[1, 101.0, 0.0, 0.0], [3, 119, 0.0, 0.0]]

我只想提取公共时间元素,因此 array1 和 array2 仅在 Time=1 和 Time=3 时包含,因为这些是公共时间元素。然后我可以去:

pos_difference = array1[:, 1] - array2[:, 1]

这将是两个数组同时之间的位置差异:

# First row will be when time=1 and second row will be when time=3
pos_difference = [[0, -1, 0.0, 0.0], [0, 1, 0.0, 0.0]]

如果你有这些数组:

import numpy as np
array1 = np.array([[1, 100.0, 0.0, 0.0], [2, 110.0, 0.0, 0.0], [3, 120.0, 0.0, 0.0]])
array2 = np.array([[1, 101.0, 0.0, 0.0], [3, 119, 0.0, 0.0]])

正如你所说,你可以使用np.intersect1d要获得交集,唯一剩下的就是对数组进行索引:

intersect = np.intersect1d(array1[:, 0], array2[:, 0])

array1_matches = array1[np.any(array1[:, 0] == intersect[:, None], axis=0)]
array2_matches = array2[np.any(array2[:, 0] == intersect[:, None], axis=0)]

然后你可以减去它们:

>>> array1_matches - array2_matches
array([[ 0., -1.,  0.,  0.],
       [ 0.,  1.,  0.,  0.]])

这假设您的时间是唯一且排序的。如果它们未排序,您可以先对它们进行排序:

>>> array1 = array1[np.argsort(array1[:, 0])]
>>> array2 = array2[np.argsort(array2[:, 0])]

如果时间不独特,我不知道你想如何处理这个问题,所以我无法给你建议。

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

查找二维 numpy 数组中的共同元素 的相关文章

  • keras 层教程和示例

    我正在尝试编码和学习不同的神经网络模型 我对输入维度有很多复杂性 我正在寻找一些教程 显示层的差异以及如何设置每个层的输入和输出 Keras 文档 https keras io layers core 向您展示所有input shape每层
  • Python 的“platform.mac_ver()”报告不正确的 MacOS 版本

    我正在使用Pythonplatform module https docs python org 3 library platform html要识别 MacOS 版本 如下所示 import platform print platform
  • API网关+Lambda+Python:处理异常

    我正在非代理模式下从 API Gateway 调用基于 Python 的 AWS Lambda 方法 我应该如何正确处理异常 以便使用部分异常设置适当的 HTTP 状态代码以及 JSON 正文 作为示例 我有以下处理程序 def my ha
  • 使用记事本打开文本文件作为python中的帮助文件?

    我想为我的简单程序的用户提供打开帮助文件的机会 以指导他们如何充分利用我的程序 理想情况下 我希望在 GUI 上有一个蓝色的小帮助链接 可以随时单击该链接 从而在本机文本编辑器 例如记事本 中打开 txt 文件 有没有一种简单的方法可以做到
  • 如何创建毫秒粒度的 Python 时间戳?

    我需要一个自纪元以来的毫秒 ms 时间戳 这应该不难 我确信我只是缺少一些方法datetime或类似的东西 实际上微秒 s 粒度也很好 我只需要亚 1 10 秒的计时 例子 我有一个每 750 毫秒发生一次的事件 假设它检查灯是否打开或关闭
  • 在 python 中查找价格动量的有效方法:对列的最后 n 个条目求平均值

    我正在定义价格动量是给定股票过去动量的平均值n days 反过来 动量是一种分类 如果当天的收盘价高于前一天 则每天标记为 1 如果当天的收盘价低于前一天 则标记为 1 我的库存变化百分比如下 df close in percent np
  • 参数太少错误,同时未使用参数占位符

    我尝试使用 PYODBC 在 Access 数据库中执行 SQL 查询 但出现以下错误 pyodbc Error 07002 07002 Microsoft ODBC Microsoft Access 驱动程序 参数太少 预期为 1 301
  • python matplotlib 使用按钮事件添加和删除图形中的文本

    我试图在调用button press event 时将文本添加到鼠标指针位置的图形中 并在调用button release event 时将其删除 我已成功添加文本 但无法将其删除 这是我使用的代码的一部分 def onclick even
  • 如何在 Python for 循环中获取 GAE ndb 中当前记录的密钥?

    我目前有一个网页 其中显示数据存储中的记录列表以及编辑链接 我想从数据库转换它 至新开发银行 我是 Python 和 GAE 新手 当前代码 tbody for listtype in listtypes tr td listtype Li
  • 带有redirect_uri的social-auth-app-django Facebook后端状态

    我知道我的问题听起来像是重复的 但我到处寻找但没有找到任何解决方案 我正在努力为我的 django web 应用程序实现社交登录 到目前为止 谷歌 推特和雅虎登录均按预期工作 但facebook总是给出以下错误 URL 被阻止 此重定向失败
  • Django - 该进程无法访问该文件,因为该文件正在被另一个进程使用

    我正在尝试在 Windows 10 上运行 Django 我是 Django 的新手 我正在使用 Compressor Toolkit 我的问题是 我可以运行 manage py 但本地主机说 base html 第 9 行出错该进程无法访
  • 有效地写入 pandas 中的多个相邻列

    使用 numpy ndarray 可以一次写入多个列 而无需先进行复制 只要它们相邻 如果我想写入数组的前三列 我会写 a 0 0 3 1 2 3 this is very fast a is a numpy ndarray 我希望在 pa
  • 如何列出静态链接的 python 版本中可用的所有 openssl 密码?

    在python 2 7 8到2 7 9升级中 ssl模块从使用更改为 DEFAULT CIPHERS DEFAULT aNULL eNULL LOW EXPORT SSLv2 to DEFAULT CIPHERS ECDH AESGCM D
  • Tkinter:通过多处理启动进程会创建不需要的新窗口

    我计划围绕数值模拟编写一个小型 GUI 这就是我现在使用 Tkinter 的原因 模拟应在单独的进程中从 GUI 启动 为了玩一下 我定义了一个函数 random process 来生成成对的 randn 数字 这应该是一个真正的模拟过程
  • django 南迁移,不设置默认值

    我使用 South 来迁移我的 Django 模型 然而 南方有一个令人讨厌的错误 它不会在 Postgres 数据库中设置默认值 例子 created at models DateTimeField default datetime no
  • 了解字典的深度

    假设我们有这个字典 d a 1 b c 了解嵌套的最直接方法是什么depth of it 您需要创建一个递归函数 gt gt gt def depth d if isinstance d dict return 1 max map dept
  • 将索引数组转换为 NumPy 中的 one-hot 编码数组

    给定一个一维索引数组 a array 1 0 3 我想将其一次性编码为二维数组 b array 0 1 0 0 1 0 0 0 0 0 0 1 创建归零数组b有足够的列 即a max 1 然后 对于每一行i 设置a i 第 列 至1 gt
  • 访问 Scrapy 内的 django 模型

    是否可以在 Scrapy 管道内访问我的 django 模型 以便我可以将抓取的数据直接保存到我的模型中 我见过this https scrapy readthedocs org en latest topics djangoitem ht
  • 如何在Python中显示坐标网格线的变换?

    假设我有常规的笛卡尔坐标系 x y 并且我考虑一个矩形网格区域 D 分成小方块 我想看看域 D 如何在 Python 中的坐标变换 T x y gt u x y v x y 下映射 我正在寻找这样的东西 See here https mat
  • 捕获 SQLAlchemy 异常

    我可以使用什么捕获 SQLAlechmy 异常的上层异常 gt gt gt from sqlalchemy import exc gt gt gt dir exc ArgumentError CircularDependencyError

随机推荐

  • 更新本地gem源码

    我正在 Rails 项目中测试 gem 当前的 Gemfile gem mygemname path path to my gem 当我在本地编辑 gem 时 我可以构建 gem 从Gemfile run bundle install 将
  • iPhone 应用程序安装在设备上后,是否可以通过编程方式更改其名称?

    我很好奇 是否可以通过编程方式更改 iPhone OS 主屏幕上使用的 iPhone 应用程序的名称 我知道这只是 Info plist 文件中的一个条目 但我还没有看到任何应用程序这样做 我想分发现有应用程序的 精简版 并允许用户通过应用
  • 将 HBITMAP 句柄从非托管代码传递到托管代码以创建 System.Drawing.Bitmap 的安全性

    我对托管 非托管互操作非常陌生 因此我希望获得一些关于以下过程将位图从非托管 C 获取到托管 C 的安全性的意见 基本思想是 C 调用互操作函数 FetchImage 这是非托管 C 中的 它通过一个out int param FetchI
  • 是否可以在视图中调用存储过程?

    已提出有关 sql server 的类似问题here https stackoverflow com questions 916784 how to call stored procedure in a view 我想知道在 MySql 中
  • SQL 检查数据库是否为空(没有表)

    我需要使用 SQL 查询检查数据库是否完全为空 没有表 如何才能做到这一点 谢谢您的帮助 SELECT COUNT DISTINCT table name FROM information schema columns WHERE tabl
  • 使用D3读取csv返回html而不是csv数据

    我在脚本标签中有以下 d3 代码 d3 csv data csv function error data data forEach function d console log data 0 d date parseDate d date
  • 设置 UIView 的框架不起作用

    我在 iOS 7 中遇到了框架属性的问题 我想调整一些 UIView 的大小viewDidLoad 我的方法UIViewController 但如果我这样做int screenHeight UIScreen mainScreen bound
  • 有没有办法检测手机上是否有硬件键盘?

    我见过其他问题 例如硬件键盘事件 https stackoverflow com questions 4883168 hardware keyboard event 但Mango 没见过这个 有什么方法可以查出手机是否有硬件键盘 Use t
  • Firebase Firestore 查询得到一个结果

    我正在寻找最好的方法 1 查询单个结果 或者2 从查询中提取第一个结果 tried collection 0 and collection pop or collection shift 没有任何作用 我真的不喜欢我正在使用的代码 但它有效
  • 使用 JOGL 进行全屏摆动

    我正在尝试制作一个全屏呈现的 Swing 应用程序 遵循此处的描述http download oracle com javase tutorial extra fullscreen exclusivemode html http downl
  • 错误:没有匹配的函数可供调用

    我想在另一个类中使用另一个类的方法 但出现以下错误 问题是什么 TIA 错误 没有匹配的函数可用于调用 PositionInfo PositionInfo 这是我的代码 PositionInfo Pos double metr Pos Ge
  • 如何设置图片的大小?

    I have 飞溅 png并希望该图像全部出现在屏幕上 就像fitXY for ImageView 飞溅 png尺寸为 480x767 我必须在代码中更改什么 public class BitmapConfigView extends Li
  • PHP 中 $variable->something 的故事是什么?

    我见过这种方法被广泛使用 尤其是在 SimpleXML 中 Is this row gt unixtime 和这样做一样吗 row unixtime 这叫什么 为什么 如何使用它 使用 PHP 进行面向对象编程 https stackove
  • 使用 REST API 通过 PHP 连接到 VCenter 身份验证错误

    我按照官方 vSphere 站点中的说明从服务器和答案中获取信息这里的另一个用户 https stackoverflow com a 49324757 12013253 据我了解 首先我必须获取会话id cis id 但结果我得到 null
  • Django 模板扩展和 CSS

    我有这样的基本模板 当我刷新页面时 此文本会记录在日志中 01 Dec 2011 18 22 00 GET search HTTP 1 1 200 2760 01 Dec 2011 18 22 00 GET static style css
  • 关闭并打开新窗口后,SSH 密钥在 git bash 上不起作用

    使用以下链接创建 ssh 密钥 https help github com articles generate a new ssh key and adding it to the ssh agent https help github c
  • 逻辑右移、算术右移、循环右移的区别

    我一直在阅读经典的 黑客之乐 但我很难理解逻辑右移 算术右移和右旋转之间的区别 如果疑问看起来太简单 请原谅 首先记住机器字的大小是固定的 说 4 您的输入是 a b c d 然后将所有内容向左推一位即可得到 b c d X 问题 X 应该
  • 在javascript中调用java方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试在 javascript 中调用 java 方法 java类驻留在服务器端 示例 Java 代码是 public class
  • 按类前缀定位元素

    假设我有以下元素 div class home div class tab231891230 div div class tab121232441 div div class tab123134545 div div 如何使用 jQuery
  • 查找二维 numpy 数组中的共同元素

    如果我有两个 或更多 二维数组 如何在给定行号的情况下仅获取数组之间的公共元素 例如 我有以下格式的数组 time position velocity acceleration 我想让两个数组只具有相同的时间元素 所以第 0 行 我可以使用