gpt4 book ai didi

python - 在 numpy 中获取 block 矩阵的均值/和的最佳方法?

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:58 25 4
gpt4 key购买 nike

<分区>

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

Block matrix

图中,大写字母代表一个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

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

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

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

非常感谢!!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com