Numpy 中的块运算

2023-11-25

是否有任何方便的实用程序可以在 Numpy 数组上进行块操作?

我正在考虑像 Ising 自旋重整化这样的操作,将矩阵划分为块并返回矩阵,其中每个块被其总和、平均值或其他函数替换。


您可能正在寻找超级蝙蝠鱼的blockwise_view。这使用np.lib.stride_tricks.as_strided创建数组的视图,将数组的“块”放置在它们自己的轴中。

例如,假设您有一个二维数组,例如,

In [97]: arr = np.arange(24).reshape(6, 4)

In [98]: arr.shape
Out[98]: (6, 4)

In [99]: arr
Out[99]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])

你想把它“砍”成 4 块形状 (3, 2)。你可以使用blockwise_view将其转换为形状为 (4, 3, 2) 的 4D 数组:

In [34]: blocked = blockwise_view(arr, (3, 2)); blocked
Out[34]: 
array([[[[ 0,  1],
         [ 4,  5],
         [ 8,  9]],

        [[ 2,  3],
         [ 6,  7],
         [10, 11]]],


       [[[12, 13],
         [16, 17],
         [20, 21]],

        [[14, 15],
         [18, 19],
         [22, 23]]]])

In [37]: blocked.shape
Out[37]: (2, 2, 3, 2)

现在您可以重新调整它的形状,以便一个块中的所有值都位于最后一个轴中:

In [41]: reshaped = blocked.reshape(-1, 3*2); reshaped
Out[41]: 
array([[ 0,  1,  4,  5,  8,  9],
       [ 2,  3,  6,  7, 10, 11],
       [12, 13, 16, 17, 20, 21],
       [14, 15, 18, 19, 22, 23]])

现在您可以沿该轴求和,或者取其平均值或对每个块的元素应用一些其他函数:

In [103]: reshaped.sum(axis=-1)
Out[103]: array([ 27,  39,  99, 111])

In [104]: reshaped.mean(axis=-1)
Out[104]: array([  4.5,   6.5,  16.5,  18.5])

Unlike 我的第一个答案,只能应用于二维数组,blockwise_view可以应用于任意 N 维数组。它返回一个 2N 维数组,其中前 N 个轴对块进行索引。

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

Numpy 中的块运算 的相关文章

  • 在 CodeIgniter 中将数组与 Calendar 类一起使用

    我正在尝试为我的日历应用程序创建一个相当复杂的数组 它应该包含日期 日期名称 类型 和事件 如果有 我已经创建了这个 dates 22 day gt Friday type gt weekday 23 day gt Saturday typ
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • PHP 数组到 JavaScript 数组

    假设我在 php 中有这个数组 cities array Caracas gt array air gt array 4 3 5 Working Days Saturday sea gt array 18 3 5 Days Wednesda
  • 如何使用 jQuery 通过 Ajax 发送复选框数组的值?

    我有一个包含很多表单字段的表单 12 x n 行 每行中的第一个字段 代表产品 是一个类似于以下内容的复选框
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都
  • JavaScript 中最长的通用前缀

    我正在尝试解决 Leet Code 挑战14 最长公共前缀 https leetcode com problems longest common prefix 编写一个函数来查找字符串数组中最长的公共前缀字符串 如果没有公共前缀 则返回空字
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • 最小化代表性整数的误差之和

    Given n integers between 0 10000 as D1 D2 Dn where there may be duplicates and n can be huge I want to find k distinct r
  • 在 Play2 和 Scala 中解析没有数据类型的 JSON

    people name Jack age 15 name Tony age 23 name Mike age 19 这是我试图解析的 json 示例 我希望能够对每个人进行 foreach 操作并打印他们的姓名和年龄 我知道当 json 数
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 我在 javascript 中更新数组(键,值)对象

    如何更新数组 键 值 对象 arrTotals DistroTotal 0 00 coupons 12 invoiceAmount 14 96 我想将 DistroTotal 更新为一个值 我努力了 for var key in arrTo
  • C++ 数组中的多字节 UTF-8

    我在处理数组中的 3 字节 Unicode UTF 8 字符时遇到了问题 当它们位于 char 数组中时 我收到多字符字符常量和隐式常量转换警告 但当我使用 wchar t 数组时 wcout 根本不返回任何内容 由于项目的性质 它必须是数
  • python numpy savetxt

    有人可以指出我在这里做错了什么吗 import numpy as np a np array 1 2 3 4 5 dtype int b np array a b c d e dtype S1 np savetxt test txt zip
  • 2 列 pandas 上的地图

    我有一个数据框 如下所示 Col1 Col2 0 A PY 1 B PA 2 C PB 3 B PB 以及这个系列 Value Col1 Col2 A PY 20 B PB 30 我想做一个映射 如果该系列有一个索引 仅前 Col1 那么它
  • 创建一个 int 类型的随机数组。爪哇

    我需要创建一个随机的 int 数组 并按我自己的类对其进行排序 这是我制作数组的地方 public class MyProgram9 public static void main String args int list new int
  • 小矩阵乘以大矩阵

    我试图将小矩阵 假设为 2x2 中的每个元素与大矩阵 假设为 4x4 中的每个位置逐个元素相乘 所以我想要 1 2 3 4 1 0 3 0 1 0 1 2 3 4 0 0 0 0 0 0 x 1 2 3 4 1 0 3 0 1 2 3 4
  • numpy.cov() 返回意外的输出

    我有一个 X 数据集 有 9 个特征和 683 行 683x9 我想获取这个 X 数据集和另一个与 X 具有相同形状的数据集的协方差矩阵 我使用np cov originalData generatedData rowvar False 代
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格

随机推荐

  • R 中的循环效率低下

    早上好 我已经在 R 中进行了几个月的开发 我必须确保我的代码的执行时间不会太长 因为我分析大数据集 因此 我一直在尝试尽可能多地使用向量化函数 然而 我仍然想知道一些事情 R中代价高昂的不是循环本身吗 我的意思是 当您开始修改循环内的变量
  • 检查 9.30 到 4 ruby​​ 之间的时间

    我有一个错误地生成它的代码 我认为必须有更好的方法来检查时间 gt 9 30 am 和时间 def checkTime goodtime false if Time now hour gt 9 and Time now min gt 30
  • maven-surefire-report-plugin不生成surefire-report.html

    我无法获取maven surefire 报告插件生成Surefire report html当我跑步时 mvn clean deploy site mvn clean site mvn site mvn clean install site
  • 在 MySQL 的文本列中搜索字符串

    我有 mysql 表 其中有一列将 xml 存储为字符串 我需要找到 xml 列包含给定 6 个字符的字符串的所有元组 其他都不重要 我只需要知道这 6 个字符的字符串是否存在 因此 文本格式为 xml 可能并不重要 问题 如何在mysql
  • 在 Excel 单元格中创建超链接?

    是否可以在 Excel 单元格中创建仅使用单元格文本的一部分作为可点击链接的超链接 IE 下表模型是否代表可以在 Excel 2010 中轻松构建的内容 模拟http dl dropbox com u 14119404 misc Micro
  • SQL Server 将整数转换为二进制字符串

    我想知道 SQL 中是否有一种简单的方法可以将整数转换为其二进制表示形式 然后将其存储为 varchar 例如 5 将转换为 101 并存储为 varchar 实际上 使用普通的旧 SQL 非常简单 只需使用按位与即可 我有点惊讶的是 网上
  • 如何管理子模块的版本?

    如果 Go 存储库有go mod文件位于其根目录中 也位于子文件夹中 子模块的版本是如何发布的 举例来说 我的团队一直在使用 Vault 来开发我们的内部 cli 工具 我们最终使用了 github com hashicorp vault
  • Apache 2.4.1 未定义对“SSLv2_client_method”的引用

    我之前运行的是 apache 2 2 20 和 openssl 1 0 0e 我安装了 openssl 1 0 1 然后下载了 apache 2 4 1 的 tarball 并安装了 apr 1 4 6 和 apr util 1 4 1 p
  • Play 2.0 中如何将多个参数传递到模板中?

    我想同时向我的模板渲染两件事 如下所示 String one one String two two return ok template render one two 但 Playframework 说这是错误的 那么如何才能同时渲染 2
  • 使 Cocoa 应用程序可编写脚本 Swift

    Goal 我正在尝试使我的 Cocoa 应用程序能够从 Applescript 中用 Swift 编写脚本 我做了什么 我创建了一个 SDEF 文件 配置了 info plist 并创建了一个我认为合适的类 定义 sdef
  • Grails Eclipse 插件

    我在 SO 上看到过各种批评 Eclipse Grails 插件的帖子 我想知道是否有人找到了一种在 Eclipse 中高效使用 Grails 的方法 我看了一下Grails 插件页面 并且那里的信息看起来不太有希望 特别是有关 禁用 Gr
  • Facebook 分享按钮和自定义文本[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 有没有办法让 Facebook 分享按钮在墙上或新闻提要上发布自定义文本 我们使用这样的东西 在一行中使用 a title send to Facebook href http
  • 简单的 Java HTTPS 服务器

    我需要为 Java 应用程序设置一个真正轻量级的 HTTPS 服务器 它是我们的开发实验室中使用的一个模拟器 用于模拟一台设备在野外接受的 HTTPS 连接 因为它纯粹是一个轻量级开发工具 根本不以任何方式用于生产 所以我很高兴能够绕过认证
  • 强制编译器选择以 const T& 作为参数的复制构造函数

    我正在编写一个类 其中有模板化构造函数和复制构造函数 每次我想使用非常量对象调用复制构造函数时 都会选择模板化构造函数 如何强制编译器选择复制构造函数 这是 mcve include
  • gcc/g++:“没有这样的文件或目录”

    g 给我以下形式的错误 foo cc
  • 使用 select 清除 angularJS 中的过滤器

    我在下面给出的 HTML 中使用 ngOptions 指令
  • 如何在 Spring boot 嵌入式 tomcat 中设置 HTTPS SSL Cipher Suite Preference

    我正在尝试根据服务器首选项设置 HTTPS SSL 密码套件首选项 而不是根据客户端和服务器支持的具有最高强度的通用密码套件自动选择 我想让服务器选择具有 TLS ECDHE 的服务器和客户端之间的共同点 以支持前向保密 我已经在 www
  • 删除所有以某个单词开头的 NSUserDefaults

    有没有办法让我 遍历 所有的列表NSUserDefault在我的 iPhone 应用程序中 只删除某些内容 例如 我想获取以某个单词开头的所有键名称 像这样的东西 NSUserDefaults standardUserDefaults re
  • 如何计算方向轴?

    之前 我根据解剖结构 例如爪子的脚趾 计算了方向轴 但我发现 当我无法很好地区分脚趾或者 脚跟 蓝色方块 偏离得很远时 这不起作用 所以我决定寻找更好的替代方案并决定尝试计算惯性轴 此页面很好地解释了如何计算它 但我很难理解从质心 或我的例
  • Numpy 中的块运算

    是否有任何方便的实用程序可以在 Numpy 数组上进行块操作 我正在考虑像 Ising 自旋重整化这样的操作 将矩阵划分为块并返回矩阵 其中每个块被其总和 平均值或其他函数替换 您可能正在寻找超级蝙蝠鱼的blockwise view 这使用