【发布时间】:2019-02-10 20:18:44
【问题描述】:
我有一个清单:
sample_list = array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])
我想计算每个元素的平均值,比如 4 个元素。但不是单独的 4 个元素,而是前 4 个:
1,2,3,4
接着是:
2,3,4,5
接着是:
3,4,5,6
等等。
结果将是第一个列表中每 4 个元素之间的平均值的数组或列表。
输出:
array([2.5, 3.5, 4.5, ...])
我的尝试:
sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
splits = 4
def avgerage_splits(data):
datasum = 0
count = 0
for num in data:
datasum += num
count += 1
if count == splits:
yield datasum / splits
datasum = count = 0
if count:
yield datasum / count
print(list(average_splits(sample_list)))
[1.5, 3.5, 5.5, 7.5, 9.5, 11.0]
这不是我需要的输出,因为它会在移动到一组新的 4 个元素之前计算每 4 个元素的平均值。我只想在列表中向上移动一个元素并计算这 4 个元素的平均值,依此类推。
【问题讨论】: