簡體   English   中英

Numpy 數組平均每十個值

[英]Numpy array mean each ten values

我有一個包含數百萬個值的 numpy 數組。 它只有一個維度。 我想返回一個新的 numpy 數組,其中包含每個十位的平均值。

有什么解決辦法?

感謝您的支持!

reshape 、求和並除以 10:

N = 10
a.reshape(-1,N).sum(1)/N

或者,使用numpy.mean

np.mean(a.reshape(-1,10), 1)

注意。 您需要確保數組的長度是 N 的倍數。如果不是,則切片以截斷或填充以添加缺失值

例子:

a = np.arange(10*20)
a.reshape(-1,10).sum(1)/10

output:

array([  4.5,  14.5,  24.5,  34.5,  44.5,  54.5,  64.5,  74.5,  84.5,
        94.5, 104.5, 114.5, 124.5, 134.5, 144.5, 154.5, 164.5, 174.5,
       184.5, 194.5])

假設 'a' 是包含數百萬個條目的數組,那么您可以獲得所需的 output,如下所示:

x = np.array([np.mean(a[i:i+10]) for i in range(0, len(a), 10)]) 

如果你的數組不是很平衡,用nan填充你的數組並使用np.nanmean來計算平均值:

a = np.arange(123)
N = 10
M = int(np.ceil(len(a) / 10) * 10 - len(a))
b = np.nanmean(np.concatenate([a, np.full(M, np.nan)]).reshape(-1, N), axis=1)

Output:

>>> b
array([  4.5,  14.5,  24.5,  34.5,  44.5,  54.5,  64.5,  74.5,  84.5,
        94.5, 104.5, 114.5, 121. ])

121 = (120 + 121 + 122 + 南 + 南 + 南 + 南 + 南 + 南 + 南) / 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM