您可以重新调整数据以将其分组为 10、50 或 100 组。然后调用该mean(axis=-1)
方法在最后一个轴(大小为 10、50 或 100 的轴)上取平均值:
使用此设置:
In [10]: import numpy as np
In [11]: times = np.linspace(0,100,1000)
In [12]: intensities = np.random.rand(len(times))
这是每 10 个值的平均值:
In [13]: intensities.reshape(-1,10).mean(axis=-1)
Out[13]: <output omitted due to length>
每 50 个值的平均值:
In [14]: intensities.reshape(-1,50).mean(axis=-1)
Out[14]: <output omitted due to length>
每 100 个值的平均值:
In [15]: intensities.reshape(-1,100).mean(axis=-1)
Out[15]:
array([ 0.50969463, 0.5095131 , 0.52503152, 0.49567742, 0.52701341,
0.53584475, 0.54808964, 0.47564486, 0.490907 , 0.50293636])
arr.reshape(-1, 10)
告诉 NumPy 重塑数组arr
,使其在最后一个轴上具有大小为 10 的形状。-1
告诉 NumPy 为第一个轴提供填充数组所需的任何大小。
请注意,reshape
以这种方式使用要求它len(intensities)
可以被您要分组的大小(例如 10、50、100)整除。