相关疑难解决方法(0)

Numpy中的Blockwise操作

是否有任何便利工具在Numpy阵列上进行块运算?

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

arrays numpy matrix

9
推荐指数
1
解决办法
786
查看次数

在numpy中取块矩阵的均值/总和的最佳方法?

我想对块矩阵(或更一般地在 d-dim nd.array 上)执行一些简单的计算。像这样的东西:

块矩阵

图中,大写字母代表一个3×3的块矩阵,小写字母代表数字(块矩阵的均值或总和)。

目前,我只知道如何使用 for 循环来做到这一点

import numpy as np

test_matrix = np.arange(81).reshape(9,9)
a = np.zeros((3,3))
for i in range(3):
    for j in range(3):
        a[k,i,j] = test_matrix[3*i:3*(i+1),3*j:3*(j+1)].mean()
print a
Run Code Online (Sandbox Code Playgroud)

但是如果我的矩阵变大或多维,它会变慢,例如:

test_matrix = np.arange(81*2).reshape(2,9,9)

a = np.zeros((2,3,3))
for k in range(2):
    for i in range(3):
        for j in range(3):
            a[k,i,j] = test_matrix[k,3*i:3*(i+1),3*j:3*(j+1)].mean()
print a
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来执行此类任务?

非常感谢!!

python numpy matrix

5
推荐指数
1
解决办法
1672
查看次数

标签 统计

matrix ×2

numpy ×2

arrays ×1

python ×1