Numpy 多维子集

2024-01-09

我花了很长时间努力寻找这个问题的答案,但没有找到任何完全符合要求的答案。我有一个多维 numpy 数组,其中包含数据(在我的例子中是 3 维)和另一个数组(2 维),其中包含有关我想要沿原始数组的最后一个维度的值的信息。例如,这是一个说明问题的简单示例。我有一个数组a数据和另一个数组b包含沿维度 2 的索引a。我想要一个新的二维数组c where c[i, j] = a[i, j, b[i, j]].我能想到的唯一方法是使用循环,如下所述。然而,这看起来笨拙且缓慢。

In [3]: a = np.arange(8).reshape((2, 2, 2))
In [4]: a
Out[4]: 
array([[[0, 1],
        [2, 3]],

       [[4, 5],
        [6, 7]]])

In [6]: b = np.array([[0, 1], [1, 1]])

In [8]: c = np.zeros_like(b)

In [9]: for i in xrange(2):
   ...:     for j in xrange(2):
   ...:         c[i, j] = a[i, j, b[i, j]]

In [10]: c
Out[10]: 
array([[0, 3],
       [5, 7]])

有没有一种更Pythonic的方法来做到这一点,也许是一些我不知道的numpy索引功能?


当您使用多维数组对多维数组进行花式索引时,每个维度的索引将一起广播。考虑到这一点,您可以这样做:

>>> rows = np.arange(a.shape[0])
>>> cols = np.arange(a.shape[1])
>>> a[rows[:, None], cols, b]
array([[0, 3],
       [5, 7]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Numpy 多维子集 的相关文章

  • 如何仅选择数组中的第一列并对其求和?

    这是我的代码 import numpy as np contrainte1 1080 0 65 minutes tous les jours contrainte2 720 0 55 minutes du lundi au vendredi
  • Visual Studio Code:如何使用参数调试 Python 脚本

    我正在使用 Visual Studio Code 来调试 Python 脚本 下列的本指南 https code visualstudio com docs python debugging 我在中设置了参数launch json file
  • 如何在python中确定过去的时区特定日期是否是夏令时?

    有没有办法检查特定时区在我指定的日期是否处于夏令时 test dt datetime year 2015 month 2 day 1 pst pytz timezone America Los Angeles test dt pst loc
  • 从 Python 将分层 JSON 数据写入 Excel xls?

    我想将一些数据从 python 写入 xlsx 我目前将其存储为 JSON 但它从 Python 中输出什么并不重要 单个文章的 JSON 如下所示 Word Count 50 Key Words Blah blah blah Foo Fr
  • 无法使用 Python 循环分页 API 响应

    所以 我对这个感到摸不着头脑 使用 HubSpot 的 API 我需要获取我客户的 门户 帐户 中所有公司的列表 遗憾的是 标准 API 调用一次只能返回 100 家公司 当它返回响应时 它包含两个参数 使分页响应成为可能 其中之一是 ha
  • 监控培训课程如何运作?

    我试图理解使用之间的区别tf Session and tf train MonitoredTrainingSession 以及我可能更喜欢其中之一 似乎当我使用后者时 我可以避免许多 杂务 例如初始化变量 启动队列运行程序或设置文件编写器以
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • 多个列表和大小的所有可能排列

    在 python 中使用以下命令很容易计算简单的排列itertools permutations https docs python org 3 library itertools html itertools permutations 你
  • 如何不断地将 STDOUT 发送到我的 python TCP 服务器?

    我有简单的 python echo 服务器 它使用套接字 并向客户端回显随机数 我有另一个程序 每 2 秒将值打印到标准输出 如果它只是一个脚本 我可以像这样重定向 stdout python script py 并像这样在脚本中获取它da
  • telethon 库:如何通过电话号码添加用户

    我正在研究 Telegram 的 Telethon 库 它可以使用 Telegram API 充当 Telegram 客户端 重要提示 这是电报客户端 API https core telegram org telegram api 而不是
  • 如何在python中访问矩阵每个元素的相邻单元格?

    这里 如果两个单元共享边界 则它们被认为是相邻的 例如 A 5 6 4 2 1 3 7 9 8 这里 索引 0 0 的相邻元素位于索引 0 1 和 1 0 处 索引 1 1 的相邻元素位于索引 0 1 1 0 2 1 处 和 1 2 假设你
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 如何在自定义 django 命令中抽象出命令代码

    我正在我的应用程序下编写自定义 django 命令management commands目录 目前我在该目录中有 6 个不同的文件 每个文件都有不同的命令来解决独特的需求 然而 有一些实用程序是它们所共有的 抽象出这些公共代码的最佳方法是什
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • 从 python 文件调用 Julia 函数

    我能够创建一个 docker 环境 然后按照这个线程我有一个用 Julia 编写的高性能函数 如何从 Python 中使用它 https stackoverflow com questions 64241264 i have a high
  • 如何输入可变的默认参数

    Python 中处理可变默认参数的方法是将它们设置为无 https stackoverflow com a 366430 5049813 例如 def foo bar None bar if bar is None else bar ret
  • PHP/MySQL - 在数据库中存储数组

    我正在开发一个 PHP 应用程序 它需要将各种设置存储在数据库中 客户经常询问是否可以添加或更改 删除某些内容 这导致了表格设计出现问题 基本上 我有很多布尔字段 它们只是指示是否为特定记录启用了各种设置 为了避免再弄乱表格 我正在考虑将数
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • AES 在 cryptojs 中加密并在 python Crypto.Cipher 中解密

    使用 js CryptoJS 加密并使用 python crypto Cipher 解密时出现问题 这是我在js中的实现 附加 iv 与加密消息并使用 base64 进行编码
  • 使用 python/scipy 进行 voronoi 和 lloyd 松弛

    如何使用 Qhull 确定哪些 voronoi 单元 按索引 是 正确的 由 现有顶点 组成 我正在尝试使用 LLoyds 算法和 scipy spatial Voronoi 它是 Qhull 的包装器 生成的输入来执行约束松弛 就代码而言

随机推荐

  • 从 Java 8 迁移到 Java 17 和 Spring 6 JUnit4 由于版本不匹配而失败

    我正在迁移企业产品 我迁移的东西如下 JDK 1 8 到 JDK 17 Spring 5 2 2 RELEASE 到 Spring 6 0 0 现在 在迁移过程中 一些测试开始失败 我有以下旧版本的依赖项 我尝试过升级版本 但不知何故不起作
  • Java 8 没有提供与解决接口默认方法相同的解决方案来允许多重继承

    Problem 我们知道 Java 不允许扩展多个类 因为这会导致钻石问题 https en wikipedia org wiki Multiple inheritance The diamond problem编译器无法决定使用哪个超类方
  • 如何让flutter应用支持电视设备?

    电视设备不支持触摸操作 用户必须使用遥控器 我们需要通过按左 上 右 下方向键来移动焦点 当目标部件获得焦点时 我们将按确定按钮来响应各种按键事件 但我找不到任何flutter接口来解决这种交互 有人可以帮助我吗 有用于此目的的 Syste
  • 将密码保存在“帐户和密码”下的首选项中

    苹果在 WWDC 上展示了 iOS 应用程序的自动填充功能推介会 https developer apple com videos play wwdc2017 206 它的设置相当简单 而且效果非常好 如果用户在safari中输入密码并保存
  • Android java.util.concurrent.TimeUnit 将毫秒转换为分钟

    有没有办法使用 java util concurrent TimeUnit 将毫秒转换为分钟 这个答案 https stackoverflow com questions 625433 how to convert milliseconds
  • 有没有办法将 Google 地图标记始终固定在其地图的中心?

    更准确地说 我试图完成的是 当我Drag谷歌地图 有谷歌地图Marker 始终固定在地图的中心 我认为这将改善用户体验 这就是我现在正在做的 var map marker options options center new google
  • Android Studio 设计时数据绑定回退/默认值

    我正在使用 Android 数据绑定 效果很好
  • JAXB 覆盖列表的 @XmlElement 类型

    有一个简单的类Bean1带有类型的子列表BeanChild1 XmlRootElement name bean XmlAccessorType XmlAccessType PROPERTY public static class Bean1
  • 如何以特定格式对数组中的奇数和偶数进行排序

    我有一个像这样的向量 seq vector lt c 3 12 5 9 11 8 4 6 7 11 15 3 9 10 12 2 我想按奇数降序排列它们 然后按偶数升序排列它们 上述 seq vector 的输出将是 new seq vec
  • 使用 Laravel 迁移将默认值设置为 NULL

    我正在迁移中的表中添加一个字段 我希望允许该字段为 NULL 但我也希望它默认为 NULL 我在默认方法中放置什么 我担心把 NULL in 将尝试放置一串NULL我显然不想要 请帮忙 Schema table item categorie
  • 无法更改复合类型,因为列正在使用它

    我正在尝试更改表中的列当前正在使用的复合类型的属性 我正在使用命令 ALTER TYPE typeName ALTER ATTRIBUTE attributeName SET DATA TYPE text 不幸的是 我收到错误 ERROR
  • 在项目中使用 gradle 插件,其依赖项也使用相同的插件

    我是 gradle 新手 从 Maven 离开 现在我有一个问题 我有一个 gradle 构建 我想在其中使用com bmuschko nexus插入 但我的项目依赖于另一个项目 我也想在其中使用com bmuschko nexus plu
  • Bonobo Git 服务器 - HTTP 错误 500.19 - 代码:0x80070021

    安装后访问系统时出现此错误 操作系统 Windows 2012 R2 我遇到了同样的问题 我相信 IIS 不知何故丢失了 MVC 框架的注册 通过以下方式重做注册 Windows 8 Windows Server 2012 Windows
  • 低功耗蓝牙 Android - 在后台搜索

    我想知道是否可以在后台检查是否有人进入或离开信标区域 例如 在 iOS 中 您可以使用以下方法didEnterRegion or didExitRegion从后台发送通知 是否有任何本地可能性或有人有解决方法 Android根本没有任何 原
  • 从 javascript 堆栈跟踪中查找 Java 实际堆栈跟踪

    我们实现了一种从 GWT 客户端记录服务器异常的通用机制 当然 其中一些是意外的异常 例如 NPE 因此我们在日志中得到了这些堆栈跟踪 摘录 java lang Throwable One or more exceptions caught
  • 使用 Android 的新指纹 API 供多个用户使用

    我们正在 Android 上创建一个时间戳应用程序 理想情况下这将使用指纹来识别用户 在一个组织中可能有大约 150 个不同的用户 指纹 API 是否允许多个用户 或者目前仅适用于设备所有者 如果这只适用于当前用户 是否有其他可用的 API
  • Jinja2 过滤器将自定义标记转换为 html

    拥有自动转义属性 我想保持这种方式 我希望用户能够输入一些自定义标记 以便有机会格式化文本 例如 s s 将被翻译成 strong strong 我相信正确的方法是编写自定义 Jinja2 过滤器 但以下方法不起作用 app templat
  • 异步实际上是如何工作的......?

    我一直在研究大量的多线程 回调 调度队列 同步和异步方式 我研究得越多 得到的就越多困惑和沮丧以至于我觉得我似乎永远无法理解它 请有人能引导我朝着正确的方向开始 到目前为止我发现的大部分信息都是关于什么是做什么和优势的东西 我什么真正想知道
  • 将文本字符串解析为 F# 代码

    如何获取应该是 F 代码的文本字符串 并将其解析为 F 代码 以在屏幕上打印结果 我猜测这个问题可以通过 NET 中的一个功能来解决 因此可以通过 F 本身或 C 来完成 这可能以什么方式解决tryfsharp org http www t
  • Numpy 多维子集

    我花了很长时间努力寻找这个问题的答案 但没有找到任何完全符合要求的答案 我有一个多维 numpy 数组 其中包含数据 在我的例子中是 3 维 和另一个数组 2 维 其中包含有关我想要沿原始数组的最后一个维度的值的信息 例如 这是一个说明问题