动态 Python 数组切片

2023-12-01

我面临的情况是我有一个非常大的numpy.ndarray(实际上,这是一个 hdf5 数据集)我需要快速找到它的子集,因为它们整个数组无法保存在内存中。但是,我也不想迭代这样的数组(即使声明内置的 numpy 迭代器也会抛出一个MemoryError)因为我的脚本实际上需要几天的时间才能运行。

因此,我面临着迭代数组的某些维度的情况,以便我可以对整个数组的精简子集执行数组操作。为此,我需要能够动态地切出数组的子集。动态切片意味着构造一个元组并传递它。

例如,代替

my_array[0,0,0]

我可能会用

my_array[(0,0,0,)]

问题是:如果我想手动沿数组的特定维度/轴切出所有值,我可以这样做

my_array[0,:,0]
> array([1, 4, 7])

但是,如果我使用元组,这不起作用:

my_array[(0,:,0,)]

我会在哪里得到SyntaxError.

当我必须动态构造切片以将某些内容放入数组的括号中时,我该如何做到这一点?


你可以切片自动地使用Python的slice:

>>> a = np.random.rand(3, 4, 5)
>>> a[0, :, 0]
array([ 0.48054702,  0.88728858,  0.83225113,  0.12491976])
>>> a[(0, slice(None), 0)]
array([ 0.48054702,  0.88728858,  0.83225113,  0.12491976])

The slice方法读作slice(*start*, stop[, step])。如果只传递一个参数,则它被解释为slice(0, stop).

在上面的例子中:被翻译成slice(0, end)这相当于slice(None).

其他切片示例:

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

动态 Python 数组切片 的相关文章

  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页

随机推荐

  • preg_quote() 的 Ruby 等价物是什么?

    在 PHP 中你需要使用preg quote 转义字符串中在正则表达式中具有特定含义的所有字符 允许 例如 preg match 搜索那些特殊字符 以下代码在 Ruby 中的等价物是什么 The content of this variab
  • 使用数据注释对依赖属性进行自定义模型验证

    从现在开始我已经使用了优秀的流利验证库来验证我的模型类 在网络应用程序中 我将它与jquery 验证插件也可以执行客户端验证 一个缺点是许多验证逻辑在客户端重复 并且不再集中在一个地方 出于这个原因 我正在寻找替代方案 有many例子出来t
  • 使用objective-c(libz.dylib)从pdf中提取文本

    我已在视图控制器类中导入 pdf h 文件并尝试调用 NSString outPutString convertPDF pathToPdfFile 但在构建时它给了我链接器错误 convertPDF refrenced from Scrip
  • 按字母顺序对 Android 应用程序进行排序?

    我有以下代码 packageManager getPackageManager List
  • 为什么 CancellationTokenSource 会挂起应用程序

    这是挂起且永不结束的简单代码段 public static void Main using var cancellationTokenSource new CancellationTokenSource Console CancelKeyP
  • Android - 支持 0 台设备

    我在更新现有应用程序时遇到问题 apk 上传工作正常 但 Google Play 表示支持 0 台设备 我一直在寻找其他一些帖子并尝试修改我的清单 但没有成功 该应用程序是使用 Ionic 框架开发的 目前我已经成功上传了20多个旧版本 然
  • 对于不返回 void 的 C++ 函数,是否必须使用 return 语句?

    我的 Herb Schildt 关于 C 的书说 在 C 中 如果一个函数被声明为返回一个值 那么它must返回一个值 但是 如果我编写一个具有非 void 返回类型的函数并且不返回任何内容 编译器会发出警告而不是错误 控制到达非 void
  • 根据某些条件从 Vec 中删除元素[重复]

    这个问题在这里已经有答案了 我的代码如下所示 struct Bar i i32 struct Foo v Vec
  • 一张图表中的条形图和折线图,并在 ggplot2 下带有图例

    我想将两个独立但相关系列的条形图和线图放在带有图例的同一张图表上 条形图是季度增长 线图是年度增长 我目前使用宽格式的 data frame 和如下代码来完成此操作 p lt ggplot geom bar df aes x Date y
  • 简单的函数突然抛出“发生未知错误,请稍后再试”

    从今天早上开始 我在尝试在新的 Google 工作表上运行新的应用程序脚本时收到以下消息 错误 发生未知错误 请稍后再试 我附加到现有 Google 表格的其他应用程序脚本继续运行良好 但是 如果我创建一个新工作表并添加一个简单的函数 如下
  • 在 Java 中创建悬空指针

    如何在 Java 中创建悬空指针 根据维基百科的定义 below no 计算机编程中的悬空指针和野指针是不指向适当类型的有效对象的指针 当删除或释放对象而不修改指针的值时 会出现悬空指针 这样指针仍然指向已释放内存的内存位置
  • 计算特定组的相对频率

    我有一个分类变量的 data frame 我已将其分为几组 并且获得了每组的计数 My original data nyD looks like Source local data frame 7 x 3 Groups v1 v2 v3 v
  • 停止活动中的服务

    我正在使用以下代码来停止我的服务 Intent intent new Intent MainActivity this UsageRecorderService class stopService intent 这是我的无限期服务 publ
  • 可视化编程工具

    我需要用于图形表示程序中的工作流程的工具 就像用图形表示描述电子电路一样 表示必须如下所示 函数是框 框之间的箭头是 消息 像这样 替代文本http img372 imageshack us img372 8471 functionsqv0
  • 如何减去ivy依赖集

    我的目标是将项目传递依赖关系划分为几个不交叉的集合 系统 j2ee 容器中已存在 jar 使用显式固定版本手动列出 提供 要复制到 j2ee 容器的 jar 手动列出 Ear jars 装在 Ear lib 内 其余的 下面列出的我当前的解
  • 在我的应用程序中嵌入 App Store

    我在 App Store 中看到允许您下载其他游戏的游戏 它不是将应用程序切换到应用程序商店来下载其他游戏 而是在应用程序本身中打开一个嵌入式应用程序商店 Zoo Country 就是执行此操作的应用程序的一个示例 据我所知 将某人带到应用
  • 成功安装 libtiff 但在导入时出现错误

    我使用 pip install libtiff 在 python 2 7 中成功安装了 libtiff 它成功安装了 libtiff 0 4 0 软件包 但是当我使用 import libtiff 导入包时 我收到一个错误 Tracebac
  • 将整数数组传递给 mysql 过程

    我想创建一个存储过程 它接收整数数组和一些其他输入 例如 CREATE PROCEDURE test field1 varchar 4 field2 varchar 4 array varchar 255 在存储过程中我想像这样使用它 WH
  • 将两个 SQL 查询的结果合并为单独的列

    我有两个查询返回单独的结果集 并且查询返回正确的输出 如何将这两个查询合并为一个 以便获得一个结果集 每个结果位于单独的列中 Query 1 SELECT SUM Fdays AS fDaysSum From tblFieldDays WH
  • 动态 Python 数组切片

    我面临的情况是我有一个非常大的numpy ndarray 实际上 这是一个 hdf5 数据集 我需要快速找到它的子集 因为它们整个数组无法保存在内存中 但是 我也不想迭代这样的数组 即使声明内置的 numpy 迭代器也会抛出一个Memory