有没有办法将operator.itemgetter与切片表示法一起使用?

2024-04-09

我在 python 列表中有一堆 numpy 数组lst。我可以对这些数组之一进行切片,通过使用以下命令对其进行索引来获取特定视图[:, 1], 例如。

我需要将此切片操作应用于所有 numpy 数组lst。使用生成器理解,我可以这样做:

(my_array[:, 1] for my_array in lst)

我想知道是否有办法完成同样的事情operator.itemgetter and map.

map(operator.itemgetter(:, 1), lst)不出所料,会导致语法错误。


切片语法生成slice为您提供的对象。您必须显式创建它们才能传递给itemgetter. Since itemgetter(x,y)(a)相当于(a[x], a[y]),您还需要使用括号来确保传递单个tuple由你的sliceint index.

# [:] -> slice(None)
map(operator.itemgetter((slice(None), 1)), lst)

弄清楚切片语法到底做什么的一个有用工具是定义一个小类

class A:
    def __getitem__(self, key):
        print(key)

然后你可以进行快速检查,例如

>>> A()[:,1]
(slice(None, None, None), 1)

(slice(None)是缩写slice(None, None, None).)

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

有没有办法将operator.itemgetter与切片表示法一起使用? 的相关文章

随机推荐

  • 如何从 Azure Key Vault 中的证书获取私钥?

    我在 Azure Key Vault 中有一个证书 我想从中提取私钥 根据微软文档 https learn microsoft com en us azure key vault certificates about certificate
  • Delphi 在保存对话框中覆盖现有文件

    我正在使用 TSaveDialog 组件通过单击按钮来保存文件 但是 我在保存现有文件名时遇到问题 通常 当您想要在 Windows 中保存现有文件时 会弹出一个消息框 询问您是否确实要覆盖该文件 TSaveDialog 组件的情况并非如此
  • 想要在 dojo 中创建一个组合框,其中下拉菜单和自动完成功能仅在用户输入 4 个字符后才启动

    我想在 dojo 中创建一个组合框 其中下拉菜单和自动完成功能仅在用户输入 3 个字符后才会启动 当前的默认设置将开始显示下拉菜单 并在用户输入第一个字符时自动完成 是否有任何属性可以实现此行为 我可以重载某些函数吗 或者我应该自己编写一个
  • GlassFish 3 + Maven + 远程部署

    我找不到任何关于如何通过 Maven 将简单的基于 Maven 的项目部署到远程 GlassFish 服务器的明确答案 mvn package xxx deploy 我认为只有 Cargo 插件支持 GlassFish 3 对吧 我在配置方
  • 为什么在 git reset (--mixed) 之前显式调用 git reset --soft

    在 git 文档 以及许多 SO 线程 中 建议使用这种重置方法 git reset soft HEAD go back to WIP state lt 2 gt git reset lt 3 gt 2 这将从提交历史记录中删除 WIP 提
  • UTF-8 格式的 JAVA Http POST 请求

    我的 J2EE 应用程序能够从 JSP 页面接收 POST 请求 这没有问题 但是如果我使用另一个java应用程序发送POST请求 收到的参数不是UTF 8字符串 这是我的代码 URL url new URL http localhost
  • 使用 std:fstream 如何拒绝对文件的访问(读和写)

    如何拒绝访问使用 fstream 打开的文件 我想在使用 fstream 读取 写入文件时无法访问该文件 您无法使用标准 fstream 来做到这一点 您必须使用特定于平台的函数 在 Windows 上 您可以使用创建文件 http msd
  • 创建 Android 锁屏应用程序。

    如何创建一个锁屏应用程序作为 Android 手机的锁 我确实找到了一个 但它的代码构造很差 如果我按下物理主页键 它就会解锁 使应用程序毫无意义 我确实遇到过一个论坛 指出 Android 4 x 中删除了一些阻止 home 按钮功能的方
  • Google 日历 API - 设计用于?

    我想使用 FullCalendar Javascript 实现 Google Calendar API 在开始编码之前 我有一些问题需要了解 Google Calendar API 的主要用途 如您所知 在创建和启用 API 之前有一些身份
  • 如何在nextjs中添加字体ttf文件

    我是 Nextjs 的新手 我想将自定义字体添加到我的项目中 我完全不知道如何做到这一点 我的字体位于 public fonts 中 我的 global css 文件是这样的 html body padding 0 margin 0 fon
  • 如何在jquery中向FormData添加变量?

    实际上我正在使用以下脚本来发布我的表单 var formData new FormData form driver information 0 ajax type POST url data formData success functio
  • C 中的三重指针:这是风格问题吗?

    我觉得 C 中的三重指针被视为 坏 对我来说 有时使用它们是有意义的 从基础开始 单指针有两个目的 创建数组 并允许函数更改其内容 通过引用传递 char a a malloc or void foo char c means I m go
  • 我如何解密签名并添加到目标 c 中的 YouTube 提取 URL?

    我正在尝试在我的应用程序中播放 YouTube 视频 一切正常 但是当我尝试观看包含 YouTube 内容的视频时 它失败 我研究发现有人认为你应该加密和解密签名并将其添加到 URL 中 我不知道该怎么做decrypt signature
  • 在多个文件上循环一个函数

    我写了一个简单的函数 myfunction lt function fileName stringsAsFactors TRUE check names FALSE skip 1 Data lt read delim fileName sk
  • 更新 Microsoft Dynamics 365 CRM 中的多个记录的 Soap 请求

    我们试图在 CRM 中一次更新多个记录 但基于 wsdl 没有直接的方法可以做到这一点 一种方法是通过传递要更新的记录的 CRM ID 来更新 CRM 中的每条记录 然而 通过阅读文档 我们发现有一种方法可以运行 ExecuteMultip
  • System.IO.FileSystemWatcher 监视网络服务器文件夹 - 性能注意事项

    我想查看网络服务器上的文件夹树的更改 这些文件都有特定的扩展名 树中大约有 200 个文件夹和大约 1200 个带有我正在查看的扩展名的文件 我无法编写在服务器上运行的服务 禁止 因此解决方案必须位于客户端本地 及时性并不是特别重要 我可以
  • 键监听器与键绑定? [复制]

    这个问题在这里已经有答案了 可能的重复 比较 KeyListener 和 Key Bindings 之间的功能 https stackoverflow com questions 8664250 comparing functionalit
  • WCF路由——如何以编程方式正确添加过滤表

    我正在使用 WCF 4 路由服务 并且需要以编程方式配置该服务 而不是通过配置 我见过的这样做的例子很少见 创建一个 MessageFilterTable 如下 var filterTable new MessageFilterTable
  • 如何在 Android 中的列表视图中显示联系人(适用于 Android api 11+)

    如果这看起来像同一个问题一百万次 我很抱歉 但是谷歌搜索没有提供任何结果 只是一堆过时的教程使用managedQuery以及其他已弃用的解决方案 我经历了用于检索联系人列表的 Android 开发人员培训 http developer an
  • 有没有办法将operator.itemgetter与切片表示法一起使用?

    我在 python 列表中有一堆 numpy 数组lst 我可以对这些数组之一进行切片 通过使用以下命令对其进行索引来获取特定视图 1 例如 我需要将此切片操作应用于所有 numpy 数组lst 使用生成器理解 我可以这样做 my arra