我有一个列表:
list_of_lists = []
list_1 = [-1, 0.67, 0.23, 0.11]
list_2 = [-1]
list_3 = [0.54, 0.24, -1]
list_4 = [0.2, 0.85, 0.8, 0.1, 0.9]
list_of_lists.append(list_1)
list_of_lists.append(list_2)
list_of_lists.append(list_3)
list_of_lists.append(list_4)
这个职位很有意义。我想返回一个列表,其中包含每个位置的平均值,不包括-1。也就是说,我想要:
[(0.54+0.2)/2, (0.67+0.24+0.85)/3, (0.23+0.8)/2, (0.11+0.1)/2, 0.9/1]
实际上是:
[0.37, 0.5866666666666667, 0.515, 0.10500000000000001, 0.9]
我怎么能用Python的方式来做呢?你知道吗
编辑:
我使用的是Python2.7,我不是在寻找每个列表的平均值,而是在寻找“位置0处的所有列表元素不包括-1”的平均值,以及“位置1处的所有列表元素不包括-1”的平均值,等等
原因是:
[(0.54+0.2)/2, (0.67+0.24+0.85)/3, (0.23+0.8)/2, (0.11+0.1)/2, 0.9/1]
位置0的值是-1、-1、0.54和0.2,我想排除-1;位置1有0.67、0.24和0.85;位置3有0.23、-1和0.8,依此类推
这是一个基于矢量化
numpy
的解决方案。你知道吗您可以使用熊猫模块过程代码希望这样:
没有第三方库的解决方案:
它使用^{} ,} 过滤出
fillvalue
设置为-1
来“转置”列表,并将缺少的值设置为-1
(将在下一步被忽略)。然后,使用生成器表达式和^{-1
并得到平均值。你知道吗相关问题 更多 >
编程相关推荐