gpt4 book ai didi

python - 对大 numpy 数组中的每几行进行平均

转载 作者:行者123 更新时间:2023-11-30 21:51:32 24 4
gpt4 key购买 nike

假设我有一个形状为 (100000000, 4) 的数组。我想每 25 行计算一次 mean(axis=0) 以获得形状为 (4000000, 4) 的新数组。

为了更清楚地说明,下面是一个简单的示例:显示了 4 x 4 数组 H。我想每 2 行计算一次 mean(axis=0) 以获得形状为 (2, 4) 的新数组 J

H = [[1,1,1,1],
[2,2,2,2],
[3,3,3,3],
[4,4,4,4]]

J = [[1.5, 1.5, 1.5, 1.5],
[3.5, 3.5, 3.5, 3.5]]

我想知道是否有一种有效的方法可以在不使用 for 循环的情况下做到这一点。

最佳答案

假设第一个维度可以(精确)被m整除。那么你可以这样做:

J = H.reshape((H.shape[0] // m, m, H.shape[1])).mean(axis=1)

或者更简单,让 numpy 计算出第一个维度的大小:

J = H.reshape((-1, m, H.shape[1])).mean(axis=1)

对于您的具体示例m=2:

In [3]: m = 2
...: J = H.reshape((H.shape[0]//m, m, H.shape[1])).mean(axis=1)
...: print(J)
[[1.5 1.5 1.5 1.5]
[3.5 3.5 3.5 3.5]]

关于python - 对大 numpy 数组中的每几行进行平均,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60105865/

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