通过使用NumPy对相邻值求平均值来减小数组大小
问题描述
我在NumPy中有数千个数字的大数组。我想通过取相邻值的平均值来减小它的大小。 例如:
a = [2,3,4,8,9,10]
#average down to 2 values here
a = [3,9]
#it averaged 2,3,4 and 8,9,10 together
基本上,我在数组中有n个元素,我想告诉它向下取X个值的平均值,它的平均值如下所示。
有什么方法可以用NumPy做到这一点(它已经被用于其他用途,所以我想继续使用它)。
解决方案
使用reshape
和mean
,可以对大小为N*m
的一维数组的每m
个邻接值进行平均,N
是任意正整数。例如:
import numpy as np
m = 3
a = np.array([2, 3, 4, 8, 9, 10])
b = a.reshape(-1, m).mean(axis=1)
#array([3., 9.])
1)a.reshape(-1, m)
将在不复制数据的情况下创建数组的2D图像:
array([[ 2, 3, 4],
[ 8, 9, 10]])
2)取第二个轴的平均值(axis=1
),然后计算每一行的平均值,结果是array([3., 9.])
。
相关文章