numpy 中的多维布尔数组索引

2024-04-12

我有两个二维数组,一个是数字数组,一个是布尔值数组:

x = 
array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 2.,  2.,  2.,  2.,  2.,  2.,  2.,  2.,  2.,  2.],
       [ 3.,  3.,  3.,  3.,  3.,  3.,  3.,  3.,  3.,  3.],
       [ 4.,  4.,  4.,  4.,  4.,  4.,  4.,  4.,  4.,  4.],
       [ 5.,  5.,  5.,  5.,  5.,  5.,  5.,  5.,  5.,  5.],
       [ 6.,  6.,  6.,  6.,  6.,  6.,  6.,  6.,  6.,  6.],
       [ 7.,  7.,  7.,  7.,  7.,  7.,  7.,  7.,  7.,  7.],
       [ 8.,  8.,  8.,  8.,  8.,  8.,  8.,  8.,  8.,  8.],
       [ 9.,  9.,  9.,  9.,  9.,  9.,  9.,  9.,  9.,  9.]])

idx = 
array([[False, False, False, False, False, False, False, False, False, False],
       [False,  True,  True,  True,  True,  True, False, False, False, False],
       [False,  True,  True,  True,  True,  True, False, False, False, False],
       [False,  True,  True,  True,  True,  True, False, False, False, False],
       [False, False, False,  True,  True,  True,  True, False, False, False],
       [False, False, False, False,  True,  True,  True, False, False, False],
       [False, False, False, False, False, False,  True, False, False, False],
       [False, False, False, False, False, False, False,  True, False, False],
       [False, False, False, False, False, False, False, False, False, False],
       [False, False, False, False, False, False, False, False, False, False]], dtype=bool)

当我索引数组时,它返回一个一维数组:

x[idx]
array([ 1.,  1.,  1.,  1.,  1.,  2.,  2.,  2.,  2.,  2.,  3.,  3.,  3.,
    3.,  3.,  4.,  4.,  4.,  4.,  5.,  5.,  5.,  6.,  7.])

如何索引数组并返回具有预期输出的二维数组:

x[idx]
array([[ 1.,  1.,  1.,  1.,  1.],
       [ 2.,  2.,  2.,  2.,  2.],
       [ 3.,  3.,  3.,  3.,  3.],
       [ 4.,  4.,  4.,  4.],
       [ 5.,  5.,  5.],
       [ 6.],
       [ 7.]])

您的命令返回一个一维数组,因为如果不 (a) 破坏通常需要的列结构就不可能实现。例如,7在您请求的输出中,最初属于第 7 列,现在位于第 0 列; (b)numpy据我所知,不支持同一维度上具有不同大小的高维数组。我的意思是 numpy 不能有一个前三行长度为 5、第四行长度为 4 等的数组 - 所有行(相同维度)需要具有相同的长度。

我认为您期望的最好结果是数组的数组(而不是二维数组)。这就是我构建它的方式,尽管可能有更好的方法我不知道:

In [9]: from itertools import izip
In [11]: array([r[ridx] for r, ridx in izip(x, idx) if ridx.sum() > 0])
Out[11]: 
array([array([ 1.,  1.,  1.,  1.,  1.]), array([ 2.,  2.,  2.,  2.,  2.]),
       array([ 3.,  3.,  3.,  3.,  3.]), array([ 4.,  4.,  4.,  4.]),
       array([ 5.,  5.,  5.]), array([ 6.]), array([ 7.])], dtype=object)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy 中的多维布尔数组索引 的相关文章

随机推荐

  • 在 HTML 中呈现字符串并保留空格和换行符

    我有一个带有详细信息页面的 MVC3 应用程序 作为其中的一部分 我有一个包含空格和换行符的描述 从数据库检索 当它被渲染时 新行和空格将被 html 忽略 我想对这些空格和新行进行编码 以便它们不会被忽略 你是怎样做的 我尝试了 HTML
  • NodeJS - 大量请求关闭后“套接字挂起”

    我已经被这个 套接字挂断 错误困扰了几天 我希望有人可以帮助我 我目前设置了两个 Node 程序 Node 中的 HTTP 服务器对每个节点都使用相同的数据进行响应 要求 HTTP 服务器响应来自 HTTP 服务器 1 的数据 对于每个请求
  • 为什么当某些内容已加载时 jQuery 会丢失“事件”(点击)?

    当我在侧边栏上选择页面时 我尝试使用下一个脚本加载内容 该脚本运行没有问题 if Modernizr history var newHash wrapperTag main content contentTag main content i
  • JPA/Hibernate:我可以有一个没有注释的父级和一个带有注释的子级吗?

    我需要创建一个可以独立使用或在更大的应用程序中使用的组件 独立使用时 它不需要数据库 也不需要任何数据库 ORM 相关的依赖项 当用作较大应用程序的一部分时 某些类确实会通过 JPA Hibernate 持久保存到数据库中 我认为组件中的域
  • 是否可以在Windows CE 5.0浏览器中查看部署在IIS 6.0上的silverlight或asp.net 3.5网站?

    我计划在 silverlight 中构建一个网站并将其部署在 IIS 6 0 上 我不知道 是否可以在Windows CE 5 0浏览器中浏览该应用程序 如果不可能的话 查看 silverlight 应用程序比查看 asp net 3 5
  • 使用 haskell Pipes-bytestring 按行迭代文件

    我正在使用管道库 需要将 ByteString 流转换为行流 即String 使用 ASCII 编码 我知道还有其他库 Pipes Text 和 Pipes Prelude 也许可以让我更轻松地从文本文件中生成行 但是由于其他一些代码 我需
  • Python GUI 在整个过程完成之前不会更新

    我有一个进程从目录中获取文件并将它们放入列表中 然后它循环迭代该列表 循环的最后一行是它应该更新我的 gui 显示的位置 然后它再次从列表中的下一项开始循环 我的问题是 在整个过程完成之前 它实际上不会更新 gui 这取决于列表的大小 可能
  • 在 slickgrid 上调用排序

    在 slickgrid 中 我可以使用以下命令设置排序列及其排序方向grid SetSortColumn colName true false 这仅设置排序字形 但不进行排序 有没有办法调用排序事件处理程序 我已经定义了排序处理程序 例如g
  • 析构函数应该是线程安全的吗?

    我正在查看遗留代码并发现以下片段 MyClass MyClass EnterCriticalSection cs Access Data Members NO Global members are being accessed here L
  • 在 .net 中,如何在 Decimal 和 Double 之间进行选择

    前几天我们在工作中讨论了这个问题 我希望有一个 Stackoverflow 问题我可以向人们指出 所以就在这里 和有什么区别Double http msdn microsoft com en us library x99xtshc VS 7
  • Rails 3 - RMagick 使用 Paperclip 找不到 libfreetype.6.dylib

    我正在尝试使用回形针上传一些图像 它工作正常 但如果我想添加一些样式 styles gt small gt 100x100 它不再工作了 我收到此错误消息 myImage 识别 命令无法识别 所以 我在网上找到了一些提示 我用 Brew 安
  • scala 控制台错误:对象 apache 不是包组织的成员

    我正在尝试这里建议的代码 http spark apache org docs 1 2 1 mllib ensembles html classification http spark apache org docs 1 2 1 mllib
  • protobuf net 是否支持列表/数组内共享引用的对象图?

    看来 protobuf net 不支持列表 数组的 AsReference 以及列表 数组内对象的 AsReference 最终 v2 会支持此功能吗 ProtoMember 1 AsReference true DynamicType t
  • AngularJS $watch 函数如何工作?

    我现在读了很多关于 AngularJS 的文章 并且遇到了神奇的 watch 函数 我知道如何使用它 但我想知道它在后台是如何实现的 是时间间隔函数吗 或者是 Angular 会在执行的每个语句中调用此监视 我现在不想深入研究源代码 如果你
  • Rails:将子域路由到资源

    是否可以将子域映射到资源 我有一个公司模型 目前 使用 subdomain fu 我的路由文件包含 map company root controller gt companies action gt show conditions gt
  • [R=301] 和 [R=301,L] 有什么区别?

    谁能与我分享一下两者之间的区别 R 301 and R 301 L 在 301 重定向中 哪个最适合重定向 url 虽然两者都工作得很好 但我确实注意到 R 301 L 将 URL 更改为新 URL 同时 R 301 仅重定向内容 有人可以
  • Windows API `GetPixel()' 总是返回 `CLR_INVALID`,但是 `SetPixel()` 效果很好?

    我的操作系统是 windows 7 64 位 有 2 个显示器显示 I use GetPixel 但它总是返回CLR INVALID结果是这样的 COLORREF result GetPixel dc x y My GetDeviceCap
  • IIS 7.5、Web 服务和 HTTP 405 错误

    我有一个在我的机器上托管的网络服务 我使用 Windows 7 和 IIS 7 5 Problem 当客户端尝试使用 Web 服务时 他 她会收到 HTTP 405 错误 在 IIS 的日志文件中 我可以看到此操作被拒绝 因为不允许使用 P
  • 使用 R 获取总和为 100 的所有组合

    我需要使用 8 个变量来获取总和等于 100 的所有组合 这些变量可以按 10 的增量步长取 0 到 100 之间的任何值 即 0 10 20 100 下面的脚本就是这样做的 但是效率非常低 因为它创建了一个巨大的数据集 我想知道是否有人有
  • numpy 中的多维布尔数组索引

    我有两个二维数组 一个是数字数组 一个是布尔值数组 x array 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4