Как отсортировать список чисел в категории с определенным сокращением?

кто-либо может помочь с путем, как отсортировать мои числа в различных категориях:

3.83
3.93
3.48
2.96
3.66
2.79
3.17

Я хочу найти путь, как возвратить количество появлений, чего-то как:

1.5-2: 0
2-2.5: 0
2.5-3.2: 3
3.2-4: 4
-1
задан 23 April 2020 в 11:18

2 ответа

То, что Вы описываете, является гистограммой binning проблема. В Python можно использовать numpy histogram функция, напр.:

>>> import numpy as np
>>> print np.histogram([3.83,3.93,3.48,2.96,3.66,2.79,3.17],[2,2.5,3.2,4])
(array([0, 3, 4]), array([ 2. ,  2.5,  3.2,  4. ]))
>>> 

Документация:

1
ответ дан 25 April 2020 в 10:42

Использование утилиты histogram.py, которая включает возможность объединения чисел в настраиваемый список групп:

histogram.py --no-mvsd -m 1.5 -x 4 -B 2,2.5,3.2,4  <  numbers.txt   

Вывод:

# NumSamples = 7; Min = 1.50; Max = 4.00
# each ∎ represents a count of 1
    1.5000 -     2.0000 [     0]: 
    2.0000 -     2.5000 [     0]: 
    2.5000 -     3.2000 [     3]: ∎∎∎
    3.2000 -     4.0000 [     4]: ∎∎∎∎

Примечание. текущая версия (v0.3.1) вышеуказанной утилиты немного темпераментна. Можно предположить, что histogram.py --no-mvsd -B 1.5,2,2.5,3.2,4 < number.txt будет достаточно, но результирующий вывод пропускает 0 количество строк, печатая только две строки с 3 и 4. Добавление списка min -m 1,5 и max -x 4, а также объединение списка -B необходимы для получения желаемого результата.

0
ответ дан 25 April 2020 в 13:28

Другие вопросы по тегам:

Похожие вопросы: