Могу ли я получить два режима (статистика)? - PullRequest
0 голосов
/ 12 марта 2020

У меня здесь ошибка

import statistics 
data=[5, 8, 15, 7, 10, 22, 3, 1, 15,10]
print (statistics.mode(data))

Могу ли я получить два режима в Python?

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Для простого решения и короткого списка вы можете использовать collections.Counter:

from collections import Counter

top2 = Counter(data).most_common(2)
# [(15, 2), (10, 2)]

Чтобы получить второй режим, вы можете затем do:

top2[1][0]
# 10

Хотя для длинных списков было бы удобнее сделать следующее:

n = 2
l = data[:]
for _ in range(1, n+1):
    nth_mode = statistics.mode(l)
    l.remove(nth_mode)

nth_mode
# 10
0 голосов
/ 12 марта 2020

Вы можете обработать ошибку, используя предложение try: кроме; Затем поищите количество режимов в наборе данных.

import statistics 
data=[5, 8, 15, 7, 10, 22, 3, 1, 15, 10]
try:
    print (statistics.mode(data))
except:
    print ("No unique mode found")
    from collections import Counter
    cmn = Counter(data).most_common()
    maxCnt = cmn[0][1]
    modes = [t[0] for t in cmn if t[1]==maxCnt]
    print('Num of modes: ', maxCnt, 'Modes: ', modes)

Результат:

No unique mode found
Num of modes: 2    Modes:  [15, 10]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...