如果我有一个列表,请说:foo = [[4, 6, 2, 7], [1.2, 8.3, 9, 16]]我可以得到每个元素的平均值,如下所示:[(a + b) / 2 for a, b in zip(foo[0], foo[1])]要么import statistics
[statistics.mean(i) for i in zip(foo[0], foo[1])]我怎样才能对任意数量的嵌套列表做同样的事情foo?我尝试了几件事,但它们不起作用,例如:[statistics.mean(i) for i in zip(list(foo))]我强烈希望只使用理解。
3 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
如果您不想使用任何包:
[statistics.mean([foo[j][i] for j in range(len(foo))]) for i in range(len(foo[0]))]
有了numpy它就会
import numpy as np
arr = np.array(foo)
means = np.mean(arr,axis=0)
编辑
没有任何包裹:
[sum([foo[j][i] for j in range(len(foo))])/len(foo) for i in range(len(foo[0]))]
料青山看我应如是
TA贡献1772条经验 获得超8个赞
试试这个:
import statistics
foo = [[4, 6, 2, 7], [1.2, 8.3, 9, 16]]
x = [statistics.mean(i) for i in zip(*foo)]
print(x)
添加回答
举报
0/150
提交
取消