列表列表的python平均值

pic*_*olo 6 python numpy list-comprehension list

我想从一个混合了正数和负数的列表中找到所有负数的均值。我可以找到列表的平均值

import numpy as np

listA = [ [2,3,-7,-4] , [-2,3,4,-5] , [-5,-6,-8,2] , [9,5,13,2]  ]
listofmeans = [np.mean(i) for i in listA ]
Run Code Online (Sandbox Code Playgroud)

我想创建一个类似的一行代码,它只取列表中负数的平均值。例如,新列表的第一个元素是 (-7 + -4)/2 = -5.5

我的完整清单是:

listofnegativemeans = [ -5.5, -3.5, -6.333333, 0 ] 
Run Code Online (Sandbox Code Playgroud)

gtl*_*ert 5

您可以使用以下内容:

listA = [[2,3,-7,-4], [-2,3,4,-5], [-5,-6,-8,2], [9,5,13,2]]
means = [np.mean([el for el in sublist if el < 0] or 0) for sublist in listA]
print(means)
Run Code Online (Sandbox Code Playgroud)

输出

[-5.5, -3.5, -6.3333, 0.0]
Run Code Online (Sandbox Code Playgroud)

如果 中的所有元素sublist都不小于0,则列表推导式将评估为[]。通过包含表达式,[] or 0我们可以处理您希望将空列表的均值计算为 的场景0