我已经嵌套了,例如:
[[1.0, 2.0, 3.0],
[3.0, 3.0, 3.0]]
我需要什么:
[2.0, 2.5, 3.0]
因此,结果列表的每个元素都是按列嵌套的列表的各种列表。
在python 2.7中最有效的方法是什么。我想该解决方案将使用map进行收费,但我看不到将其应用于此任务的正确方法。
答案 0 :(得分:2)
您可以使用库numpy进行非常有效的计算。
import numpy as np
a = np.array([[1,2,3], [3,3,3]])
np.mean(a, axis=0)
答案 1 :(得分:1)
您可以使用zip
和map
。使用zip
来转置矩阵,然后在sum
的帮助下map
将每一列均值化为平均值。
values = [[1, 2, 3], [3, 3, 3]]
averages = map(lambda x: sum(x)/float(len(x)), zip(*values))
print averages
输出:
[2.0, 2.5, 3.0]
答案 2 :(得分:1)
使用zip
和列表理解:
lists = [[1.0, 2.0, 3.0], [3.0, 3.0, 3.0]]
averages = [sum(l)/len(l) for l in zip(*lists)]
答案 3 :(得分:1)
您可以zip
列表列表,然后map
到statistics.mean
:
from statistics import mean
list(map(mean, zip(*lst)))
这将返回:
[2, 2.5, 3]
答案 4 :(得分:0)
list(map(lambda x,y: (x+y)/2.0, [1, 2, 3], [3, 3, 3]))
输出:
[2.0, 2.5, 3.0]
编辑:
在python 2.7.15上测试