如果我有一个列表,比如说。
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))]
我非常希望只用理解力。
下面的代码应该可以完成工作。
[sum(i)/len(i) for i in zip(*foo)]
试试这个
import statistics
foo = [[4, 6, 2, 7], [1.2, 8.3, 9, 16]]
x = [statistics.mean(i) for i in zip(*foo)]
print(x)
如果你不想使用任何软件包,
[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]))]