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 中的多维布尔数组索引 的相关文章

  • Mypy 无法从文字列表推断项目的类型

    我有一个变量x和一个文字列表 例如 0 1 2 我想转换x这些文字之一 如果x在列表中 我将其退回 否则我返回一个后备值 from typing import Literal Set Foo Literal 0 1 2 foos Set F
  • IndexError:索引 10 超出尺寸为 10 的轴 0 的范围

    我正在以数字方式为 x 网格和 x 向量以及时间网格设置网格 但我再次设置了一个数组x 位置 只能在 0 到 20 之间并且t 时间 将从 0 到 1000 以便求解热方程 但每次我想要 例如 我将步数设置为 10 时 都会收到错误 Tra
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 协程从未被等待

    我正在使用一个简单的上下文管理器 其中包含一个异步循环 class Runner def init self self loop asyncio get event loop def enter self return self def e
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • Paste.httpserver 并通过 HTTP/1.1 Keep-alive 减慢速度;使用 httperf 和 ab 进行测试

    我有一个基于paste httpserver 的Web 服务器作为HTTP 和WSGI 之间的适配器 当我使用 httperf 进行性能测量时 如果每次使用 num conn 启动一个新请求 我每秒可以执行超过 1 000 个请求 如果我使
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • XPath:通过当前节点属性选择当前和下一个节点的文本

    首先 这是从我之前的问题 https stackoverflow com questions 5202187 xpath select current and next nodes text by current node attribut
  • 如何将项目插入到特定索引处的空数组中?

    我想将一个项目插入到空数组的指定索引中 我看到有 Array prototype splice 方法 但是 如果我在空数组上使用 splice 它只会添加项目来结束数组 如下所示 var a a splice 3 0 item 3 cons
  • 数组上的 Bash 子字符串扩展

    我有一组带有给定后缀的文件 例如 我有一组带有后缀的pdf文件 pdf 我想使用子字符串扩展来获取不带后缀的文件名 对于单个文件我可以使用 file test pdf echo file 0 4 要对所有文件执行此操作 我现在尝试 file
  • PHP 中根据相似值对数组进行分组

    我有一个具有以下结构的数组
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome

随机推荐

  • 在 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