如何使用 numpy 数组有效获取由特定值选择的索引列表?

2023-12-06

我有一个像这样的 numpy 数组:

import numpy as np
arr = np.array([9, 6, 3, 8, 2, 3, 3, 4, 4, 9, 5, 6, 6, 6, 6, 7, 8, 9])

我想按组获取找到的值的索引列表

index_list_2 = [4 ]         # index list of the element with the value 2
index_list_3 = [2, 5, 6 ]
index_list_4 = [7, 8 ]
index_list_9 = [0, 9, 17]

# [...]

我想到的第一种方法(这不是很Pythonic):

i = 0
for x in arr:
    if x == 2:
        index_list_2 += [i]
    if x == 3:
        index_list_3 += [i]
    if x == 4:
        index_list_4 += [i]
    if x == 9:
        index_list_9 += [i]
    i += 1

使用 numpy 数组实现此目的最有效的方法是什么?


这应该不会太慢。该数组仅迭代一次。 结果 (ind) 是一个字典值 -> 索引列表。

import numpy as np
arr = np.array([2, 3, 3, 4, 4, 9, 5, 6, 6, 6, 6, 7, 8, 9])

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

如何使用 numpy 数组有效获取由特定值选择的索引列表? 的相关文章

随机推荐

  • 从钥匙串中检索 SecKey

    我正在尝试升级我从中获得的代码这个答案用于生成 CSR 从 Swift 2 到 Swift 3 我已升级大部分代码 但原始答案的实用程序块中的以下代码失败并出现错误 init 不可用 使用 withMemoryRebound to capa
  • 更改 SignalR Core 中的全局设置配置

    我在用SignalR 核心 with ASP NET核心 我想覆盖环球主机signalR 的设置 我正进入 状态this protected void Application Start object sender EventArgs e
  • Excel VBA:获取包含选定范围内数据的最后一个单元格

    如何使用 Excel VBA 获取包含特定范围 例如 A 列和 B 列 内的数据的最后一个单元格Range A B using Find像下面这样很有用 因为它 可以立即找到二维范围中的最后一个 或第一个 单元格 测试Nothing识别空白
  • 函数返回未定义的、预期的 Promise 或值

    当我在 firebase 上触发简单数据库触发器时 然后它会显示这样的错误 函数返回未定义的预期 Promise 或值 const firebase require firebase admin const functions requir
  • mldivide 是否始终与 MATLAB 中的 OLS 相同?

    我正在对一些替代线性回归技术进行比较 显然 这些将相对于 OLS 普通最小二乘法 进行基准测试 但我只想要一个纯粹的 OLS 方法 不需要对数据进行预处理来发现数据中的不良条件 就像您在使用时发现的那样regress 我本来希望简单地使用经
  • PHP 点击事件处理程序

    我是 PHP 编程新手 我想知道是否可以像在 ASP NET 中那样处理 PHP 事件 我的意思是我有一个 img 我想在该 img 的单击事件上执行一些任务 我知道如何在 ASP NET 中执行此操作 但请在 PHP 上下文中帮助我 谢谢
  • 集合已修改;枚举操作可能无法执行

    我的 TabControl 中有多个 TabItem tabItem1 tabItem2 tabItem3 这些是 CloseableTabItem 如果我在 tabItem1 中添加一个节点并按下按钮为该节点创建子图模型 则 相同的节点应
  • 将二维数组拆分为单个数组

    我对 JQuery 有点陌生 我有一个 2D 数组 2DArray 2 0 6 31 3 0 6 09 4 0 7 44 我想将它分成 2 个一维数组 如下所示 2 0 3 0 4 0 6 31 6 09 7 44 我读过有关将单数组转换为
  • 使用 Cheerio 的 br 标签后的目标文本

    我正在练习通过使用 Cheerio 进行抓取来创建 API 我正在从这个相当复杂的网站上抓取 http www vegasinsider com nfl odds las vegas 我试图在这些之后定位文本 br 锚标签内的标签 td 元
  • 使用 xmllint 从 xml 文件中提取数据

    我有一个小xml我需要使用 xmllint 从中提取一些值 我可以使用以下命令浏览 xml 层次结构xmllint shell xmlfilename命令 但我无法提取这些值 我不想使用grep 任何模式匹配命令 因为这已经完成并且是成功的
  • Django Channels:当用户打开多个窗口时,group_send() 在发送到活动窗口时出现延迟

    背景 我正在本地 开发 服务器上开发聊天应用程序 Python 3 9 5 Django 3 2 通道 3 0 3 每个用户都可以在页面上看到 所有消息 部分 其中包含所有用户的消息 以及 我的消息 部分 仅包含他自己的消息 目标 所有消息
  • 在 JNA 中映射 COM 接口方法

    我试图了解 Native loadLibrary 的工作原理 但我在网上找不到很好的解释 我需要访问IVssBackupComponents AbortBackup函数位于VssApi lib 这是函数文档的链接 https learn m
  • Unix sftp - mput 命令 - 传输具有特定前缀的所有文件

    我的目录中有一堆文件 但我想仅将以下文件开头的文件传输到 SFTP 服务器ABC or XYZ 我如何在我的mput命令 如果您的文件都在当前目录中 sftp user server lt lt EOF cd destination for
  • CSS - 需要“三重”边框

    我有这个CSS border 2px solid 00ff60 outline 1px solid 000 outline offset 0px 产生这个 我怎样才能调整它以使其也有像底部一样的内部黑色边框 编辑 抱歉忘记添加 我想将此样式
  • Python哈希表用于模糊匹配

    我正在尝试实现一种允许基于键快速查找的数据结构 蟒蛇dict当我的查找涉及相等时非常有用 e g key somevalue翻译为datadict somevalue 问题是我还需要能够基于更复杂的比较有效地查找键 例如key gt 50
  • 如何使用 OneNote Javascript API 阅读 OneNote 缩进段落?

    I have a notebook that contains these OneNote API 的文档在这里 已选择段落类 https learn microsoft com en us javascript api onenote o
  • 在Android中写入和读取二进制文件

    我创建了一个类型的自定义对象Task我想将其保存在内部存储器中的二进制文件中 这是我创建的类 public class Task private String title private int year private int month
  • h:inputFile 提交或其他输入验证失败后值变为空白,如何保留其值?

    对于许多其他标准 JSF 组件 当提交表单并且服务器端验证失败时 页面会再次呈现 并填充先前提交的表单字段 以便用户编辑和重新提交 我正在从新的 h inputFile 中寻找相同的行为 但没有找到它 举一个简单的例子 我有一个带有 h i
  • 如何将最后一次测试运行 ID 从 TFS 获取到我的 powershell 脚本

    我想使用最后一个 TestRunId 通过 powershell 创建报告 将信息发送到 Slack 我使用 Team Services REST API 来获取测试结果 它工作正常 但仅限于特定的运行 ID 这是一个链接 您可以在其中找到
  • 如何使用 numpy 数组有效获取由特定值选择的索引列表?

    我有一个像这样的 numpy 数组 import numpy as np arr np array 9 6 3 8 2 3 3 4 4 9 5 6 6 6 6 7 8 9 我想按组获取找到的值的索引列表 index list 2 4 ind