从 Numpy 中的多个切片中选择

2024-02-29

说我们有

a = np.ones((3,3,3))

and

slices = [(0, 1, slice(None)), (0, slice(None), 0),  (slice(None), 1, 0)]

有没有一种简单的方法来选择/更改值a from slices?

例如,我想分配0 to a在切片下这样a becomes

array([[[0., 1., 1.],
        [0., 0., 0.],
        [0., 1., 1.]],

       [[1., 1., 1.],
        [0., 1., 1.],
        [1., 1., 1.]],

       [[1., 1., 1.],
        [0., 1., 1.],
        [1., 1., 1.]]])

迭代的方法是

for t in slices:
    a[t] = 0

有没有更好的方法来利用索引np.r_就像 JoshAdel 在中使用的那样为 numpy 中的多个切片赋值 https://stackoverflow.com/questions/16282941/assign-value-to-multiple-slices-in-numpy/16283049#16283049?

我希望能够实现类似的目标a[SLICES] = 0并更改所有部分a从每个切片slices to 0.


你知道什么吗r_做?它将切片转换为范围,然后将整个混乱连接在一起。

不知道你能不能用r_或类似的东西来构建所需的索引。但:

In [168]: idx = np.where(a==0)
In [169]: idx
Out[169]: 
(array([0, 0, 0, 0, 0, 1, 2]),
 array([0, 1, 1, 1, 2, 1, 1]),
 array([0, 0, 1, 2, 0, 0, 0]))

这让我们了解了所需的索引数组(减去一些可能的重复项)。


或许可以将这 3 个连接起来ogrid列表成复合:

In [181]: np.ogrid[0:1,1:2,:3]
Out[181]: [array([[[0]]]), array([[[1]]]), array([[[0, 1, 2]]])]

In [182]: np.ogrid[0:1,:3,0:1]
Out[182]: 
[array([[[0]]]), array([[[0],
         [1],
         [2]]]), array([[[0]]])]

In [183]: np.ogrid[:3,1:2,0:1]
Out[183]: 
[array([[[0]],

        [[1]],

        [[2]]]), array([[[1]]]), array([[[0]]])]

他们分别选择 0a.

最简单的方法可能是将它们转换为它们的等价物,然后连接生成的一维数组。

In [188]: np.ravel_multi_index(Out[181],(3,3,3))
Out[188]: array([[[3, 4, 5]]])
etc
In [195]: np.hstack([Out[188].ravel(), Out[189].ravel(), Out[190].ravel()])
Out[195]: array([ 3,  4,  5,  0,  3,  6,  3, 12, 21])
In [197]: a.flat[_]
Out[197]: array([0., 0., 0., 0., 0., 0., 0., 0., 0.])

In [199]: np.unravel_index(Out[195],(3,3,3))
Out[199]: 
(array([0, 0, 0, 0, 0, 0, 0, 1, 2]),
 array([1, 1, 1, 0, 1, 2, 1, 1, 1]),
 array([0, 1, 2, 0, 0, 0, 0, 0, 0]))

Out[169] and Out[199]具有相同的值,但重复项除外。

这是连接多个一维切片问题的概括。建立索引然后连接所花费的时间与先连接索引所需的时间大致相同。

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

从 Numpy 中的多个切片中选择 的相关文章

  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并

随机推荐

  • Go 语法和接口作为函数的参数

    我是Go编程语言的新手 最近遇到以下代码 func rec ContactRecord Less other interface bool return rec sortKey Less other ContactRecord sortKe
  • 在c#中自定义ToolStripMenuItems

    我需要在我的应用程序中自定义 ToolStripMenuItems 每个打开子菜单的 ToolStripMenuItem 的文本附近都有一个黑色箭头 我想更改一些颜色 MenuItemSelected MenuItemBorder Menu
  • JavaScript 中仅比较日期部分而不比较时间

    下面的代码有什么问题 也许只比较日期而不是时间会更简单 我也不知道如何做到这一点 我进行了搜索 但找不到我的确切问题 顺便说一句 当我在警报中显示两个日期时 它们显示为完全相同 My code window addEvent domread
  • System.Data.DataException:初始化数据库时发生异常

    请帮我解决这个问题 我已经编写了使用 LINQ 从数据库获取第一条记录的代码 My Homecontroler CustomHandleError public class HomeController Controller Domain
  • 如何动态生成团队之间可能的遭遇?

    我感谢您提前在本练习中提供帮助 其中我还没有发现如何解决它的真相 如何动态生成团队之间可能的遭遇 具有以下输入字段 开始日期 teams fields 玩的天数 例如以下数据 const startDate 03 08 2020 const
  • MySQL - 连接上的特定列?

    在进行连接 内部 左外部 右外部或其他 时 如何指定表中的哪些列要连接到原始表中 考虑以下示例 SELECT FirstName FROM User LEFT OUTER JOIN Provider ON User ProviderID P
  • 谁能量化 C++ 和 Java 之间的性能差异?

    在 JIT 出现之前 Java 最初速度很慢 但现在的性能非常接近 C 我想知道是否有人对这两种语言进行了可衡量的性能比较 与C 相比 Java的不足在哪里 Java 为开发人员提供了许多生产力提升 因此他们可以更快地编写应用程序 因为没有
  • Mockito:使用类型兼容的参数验证重载方法

    考虑你想要mock一个接口使用Mockito包含以下方法签名 public void doThis Object o public void doThis Object o 我需要verify that doThis Object o 而不
  • 当仪表板按钮被禁用时,我们可以显示不同的工具提示吗?

    我专门使用 Tridion 2011 的 PowerTools 扩展 但这适用于仪表板中带有按钮的任何 Anguilla 扩展 我们可以设置
  • getElementById() 高效吗? [复制]

    这个问题在这里已经有答案了 我经常用这个方法getElementById id1 在我的方法中 我用它来查找 HTML 中的某些元素 我想知道如果每次都必须搜索整个 DOM 我是否需要关心我使用它的程度 这个方法如何运作 它是否解析 DOM
  • 创建具有大量标志的位标志变量或如何创建大位宽数字

    假设我有一个枚举 其位标志选项大于标准数据类型中的位数 enum flag t FLAG 1 0x1 FLAG 2 0x2 FLAG 130 0x400000000000000000000000000000000 由于多种原因 这是不可能的
  • 如何检查字符串是否与 Python 中的设定模式匹配?

    我想将字符串与特定模式或单词集匹配 如下所示 the apple is red是查询并且the apple orange grape is red orange violet是要匹配的模式 这些管道代表可以相互替换的单词 该模式也可以分组为
  • 如何检索单元格评论的文本

    我找到了很多用于创建的示例 但没有找到用于检索单元格注释文本的示例 我错过了一些明显的事情吗 Range Comment Text似乎在这里工作没有任何问题 e g if not ActiveCell Comment is nothing
  • RestKit 不会从本地存储中删除孤立对象

    您好 我已将 RestKit 从 0 10 2 更新到 0 20 3 现在更新后 当 Web 服务中缺少对象时 RestKit 不会从本地存储中删除它们 我知道 RestKit 0 20 x 支持它 但我无法配置它 我按照这里给出的例子进行
  • 如何通过其值而不是位置设置微调器默认值?

    我的数据库中有 1 50 条记录 我使用游标获取这些数据 并使用简单游标适配器将这些值设置为 Spinner 现在我需要的是我想设置一个值 例如第 39 个值 作为默认值 但我不想通过它的位置来设置它的值 我知道如何通过其位置设置微调器默认
  • 在Centos 6.6 64位中安装pymssql

    我尝试在 Centos 6 6 中 pip install pymssql 但不断遇到此错误 mssql c 314 22 错误 sqlfront h 没有这样的文件或目录 cpp helpers h 34 19 错误 sybdb h 没有
  • 检测节点在场景中何时可见

    我正在尝试找到一种方法来检测 或接收通知 节点已添加到场景中并且可见 我正在主 JavaFx 线程中创建 Node 对象 并将它们添加到舞台和场景中 使用Platform runLater 但是 我希望 Node 对象接收已添加到场景中并且
  • Typescript:将 JSON 对象转换为类/接口对象

    我正在尝试将 API 响应转换为打字稿类 接口 这里 API 返回具有某些属性的对象列表 但我只需要响应对象的少数属性 API响应示例 Id 1 Name test Description Test PropertyX x Property
  • DNS 在 PHP 中不工作(但一般情况下可以)

    以下脚本 返回 DNS 记录列表 但最终在 file get contents 上失败 尽管 phpinfo 说 allow url fopen On On allow url include Off 出现以下错误 PHP 消息 PHP 警
  • 从 Numpy 中的多个切片中选择

    说我们有 a np ones 3 3 3 and slices 0 1 slice None 0 slice None 0 slice None 1 0 有没有一种简单的方法来选择 更改值a from slices 例如 我想分配0 to