Python 矩阵内平均值

Python 矩阵内平均值,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,假设我们有一个6x6矩阵(numpy ndarray),如: 如何计算包含相同数字的每个2x2子矩阵的平均值,并获得3x3矩阵作为输出?不确定这是否是您想要的 import numpy as np x = np.arange(1,10).reshape(3,3) y = np.ones((2,2),dtype=np.int32) z = np.kron(x,y) z 构建输入数组 import numpy as np x = np.arange(1,10).reshape(3,3) x =

假设我们有一个6x6矩阵(numpy ndarray),如:


如何计算包含相同数字的每个2x2子矩阵的平均值,并获得3x3矩阵作为输出?

不确定这是否是您想要的

import numpy as np
x = np.arange(1,10).reshape(3,3)
y = np.ones((2,2),dtype=np.int32)
z = np.kron(x,y)
z


构建输入数组

import numpy as np
x = np.arange(1,10).reshape(3,3)
x = np.repeat(x, 2, 0)
x = np.repeat(x, 2, 1)
print(x)
输出:

计算所有2x2块的平均值

m = (x.reshape(3, 2, -1, 2)
      .swapaxes(1,2)
      .mean((2,3)))
print(m)
输出:


欢迎来到堆栈溢出!请拿起,阅读,和,并提供一个。“为我实现此功能”是本网站的主题。你必须做出诚实的尝试,然后问一个关于你的算法或技术的具体问题。你的6x6矩阵是如何格式化的?这是36个元素的列表吗?是numpy阵列吗?请提供更多的细节。这是一个大问题!相关:一旦你有了块,找到平均值就很简单了。你是想通过索引引用它们,还是想通过编程定位“每个包含相同数字的2x2矩阵”?(无论如何,做后者似乎是一项愚蠢的任务,一个矩阵的平均值都是n,是n)
import numpy as np
x = np.arange(1,10).reshape(3,3)
x = np.repeat(x, 2, 0)
x = np.repeat(x, 2, 1)
print(x)
[[1 1 2 2 3 3]
 [1 1 2 2 3 3]
 [4 4 5 5 6 6]
 [4 4 5 5 6 6]
 [7 7 8 8 9 9]
 [7 7 8 8 9 9]]
m = (x.reshape(3, 2, -1, 2)
      .swapaxes(1,2)
      .mean((2,3)))
print(m)
[[1. 2. 3.]
 [4. 5. 6.]
 [7. 8. 9.]]