如何解决矩阵内的平均值
假设我们有一个6x6矩阵(numpy ndarray),如下所示:
[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]
我将如何计算每个包含相同数字的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
def meanpool2d(x):
h,w = x.shape
out = np.zeros((h//2,w//2))
for i in range(h//2):
for j in range(w//2):
out[i][j] = np.mean(x[2*i:2*i+2,2*j:2*j+2])
return out
meanpool2d(z)
,
构造输入数组
''
出局:
import numpy as np
x = np.arange(1,3)
x = np.repeat(x,2,0)
x = np.repeat(x,1)
print(x)
计算所有2x2块的均值
[[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,-1,2)
.swapaxes(1,2)
.mean((2,3)))
print(m)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。