小编Ari*_*le0的帖子

如何计算数组块内的值的总和

我有数据数组,形状为 100x100。我想把它分成 5x5 块,每个块有 20x20 个网格。我想要的每个块的值是其中所有值的总和。

有没有更优雅的方法来实现它?

x = np.arange(100)
y = np.arange(100)
X, Y = np.meshgrid(x, y)
Z = np.cos(X)*np.sin(Y)
Z_new = np.zeros((5, 5))
for i in range(5):
  for j in range(5):
    Z_new[i, j] = np.sum(Z[i*20:20+i*20, j*20:20+j*20])
Run Code Online (Sandbox Code Playgroud)

这是基于索引的,如果基于 x 呢?

x = np.linspace(0, 1, 100)
y = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, y)
Z = np.cos(X)*np.sin(Y)
x_new = np.linspace(0, 1, 15)
y_new = np.linspace(0, 1, 15)
Run Code Online (Sandbox Code Playgroud)

Z_新?

python numpy

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

标签 统计

numpy ×1

python ×1