кто-либо может помочь с путем, как отсортировать мои числа в различных категориях:
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
То, что Вы описываете, является гистограммой 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. ]))
>>>
Документация:
Использование утилиты 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
необходимы для получения желаемого результата.