python - 将 NxN 矩阵中的值分组为 N/2 x N/2 矩阵
问题描述
假设我有以下 4x4 矩阵:
import numpy as np
np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12],
[13,14,15,16]])
我希望将 2x2 子矩阵中的值分组,对它们求和并将结果收集到 2x2 矩阵中,这样在这种情况下的结果将是:
[
[14, 22],
[46, 54]
]
这样做的最麻木的方式是什么?
解决方案
您可以使用.reshape
方法,然后沿轴求和:
import numpy as np
data = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9,10,11,12],
[13,14,15,16]])
bs = 2 #block size
data_r = data.reshape(bs,bs,bs,bs)
data_r
array([[[[ 1, 2],
[ 3, 4]],
[[ 5, 6],
[ 7, 8]]],
[[[ 9, 10],
[11, 12]],
[[13, 14],
[15, 16]]]])
data_r.sum(axis=(1,3))
array([[14, 22],
[46, 54]])
推荐阅读
- react-native - 反应原生是否支持重复线性渐变?
- java - 错误:SQLException: Parameter index out of range (1 > number of parameters, which is 0)
- html - 我想制作一个可以在列表中创建列表的 django 应用程序
- mysql - 改进了在 SELECT WHERE IN 语句中找出“未使用”值的方法
- aws-codepipeline - AWS CodeBuild 因 .net 控制台应用程序的 CommandNotFoundException 而失败
- javascript - Tampermonkey 脚本点击事件在用户与窗口交互之前什么都不做
- python - 如何使用 geopanda 或 shapely 在同一地理数据框中找到最近的点
- python-3.x - 如何指定要在 sonarqube 中扫描的语言版本?
- amazon-redshift - Redshift 是否支持 SELECT 中的用户定义变量?
- html - 在 VBA 中使用 XMLHTTP 对象解析一些网站