Python-获取列表中少数类的百分比

标签 python list

假设我有一个列表,我如何编写一个优雅的语句来计算列表中少数类的百分比?

例如,对于 list1 = [1,1,1,-1,-1],少数类为 -1。列表中 -1 的百分比将为 2/5=0.4

对于另一个列表list2 = [1,-1,-1,-1,-1],少数类是1。列表中 1 的百分比将为 1/5=0.2

最佳答案

使用collections.Counter ,

import collections

list1 = [1,1,1,-1,-1]
p = min(collections.Counter(list1).values())*1.0/len(list1)
print(p)
# Output
0.4
<小时/>

collections.Counter(list1) 返回一个带有 key:valueelement:Frequency 的字典。在本例中,它将是 Counter({1: 3, -1: 2})

关于Python-获取列表中少数类的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37219580/

相关文章:

python - 如何在 Windows 10 上运行 TensorFlow?我有 GPU Geforce gtx 1650。我可以在上面运行 TensorFlow 吗?如果是,那么如何?

python - 如何使用 Pandas 按组计算时差?

python - 根据条件将数据帧的值移动到列表

java - 包含原始数组的列表与包含对象数组的列表

r - 访问 R 中对象中的列表(轮廓函数)

python - 无法解决以10为底的int()的基本错误无效文字

python - python中有没有可以控制每次迭代的数值求解器?

python - 如何在 python 中一个接一个地运行多个可执行文件

python - 元音列表 : weird lambda expression

python - 在列表中查找形成循环引用的 3 对集合