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

Функции подсчета

Этот пакет содержит функции для подсчета вхождений отдельных значений.

Подсчет в целочисленном диапазоне

counts(x, [wv::AbstractWeights])
counts(x, levels::UnitRange{<:Integer}, [wv::AbstractWeights])
counts(x, k::Integer, [wv::AbstractWeights])

Подсчитывает, сколько раз встречается каждое значение в x. Если указан аргумент levels, учитываются только значения, попадающие в этот диапазон (остальные значения игнорируются без выдачи ошибки или предупреждения). Если указан целочисленный аргумент k, учитываются только значения в диапазоне 1:k.

Если указан вектор весов wv, вычисляются весовые доли, а не доли собственно подсчитанных количеств.

Результатом является вектор длиной length(levels).

proportions(x, levels=span(x), [wv::AbstractWeights])

Возвращает доли значений, встречающихся в x, в диапазоне levels. Эквивалентно counts(x, levels) / length(x).

Если указан вектор весов wv, вычисляются весовые доли, а не доли собственно подсчитанных количеств.

proportions(x, k::Integer, [wv::AbstractWeights])

Возвращает доли целочисленных значений, встречающихся в x, в диапазоне 1--k.

Если указан вектор весов wv, вычисляются весовые доли, а не доли собственно подсчитанных количеств.

addcounts!(r, x, levels::UnitRange{<:Integer}, [wv::AbstractWeights])

Добавляет количество вхождений каждого значения из levels в x в существующий массив r. Для каждого xi ∈ x, если xi == levels[j], значение r[j] увеличивается на единицу.

Если указан вектор весов wv, используется сумма весов, а не собственно подсчитанные количества.

Подсчет произвольных отдельных значений

countmap(x; alg = :auto)
countmap(x::AbstractVector, wv::AbstractVector{<:Real})

Возвращает словарь, в котором каждое уникальное значение из x сопоставлено с количеством его вхождений.

Если указан вектор весов wv, используется сумма весов, а не собственно подсчитанные количества.

Аргумент alg допускается только при невзвешенном подсчете и может иметь одно из следующих значений:

  • :auto (по умолчанию): если StatsBase.radixsort_safe(eltype(x)) == true, то используется :radixsort; в противном случае используется :dict.

  • :radixsort: если radixsort_safe(eltype(x)) == true, то для сортировки входного вектора используется алгоритм поразрядной сортировки, что обычно ускоряет выполнение. Однако алгоритм поразрядной сортировки создает копию входного вектора и поэтому потребляет больше оперативной памяти. Выберите значение :dict, если объем доступной оперативной памяти ограничен.

  • :dict: используется метод на основе Dict, который обычно выполняется медленнее, но потребляет меньше оперативной памяти и является безопасным для любого типа данных.

proportionmap(x)
proportionmap(x::AbstractVector, w::AbstractVector{<:Real})

Возвращает словарь, в котором каждое уникальное значение из x сопоставлено с его долей в x.

Если указан вектор весов wv, вычисляются весовые доли, а не доли собственно подсчитанных количеств.

addcounts!(dict, x; alg = :auto)
addcounts!(dict, x, wv)

Добавляет подсчитанные количества в x в карту подсчета. Новые записи добавляются, если встречаются новые значения.

Если указан вектор весов wv, используется сумма весов, а не собственно подсчитанные количества.

Аргумент alg допускается только при невзвешенном подсчете и может иметь одно из следующих значений:

  • :auto (по умолчанию): если StatsBase.radixsort_safe(eltype(x)) == true, то используется :radixsort; в противном случае используется :dict.

  • :radixsort: если radixsort_safe(eltype(x)) == true, то для сортировки входного вектора используется алгоритм поразрядной сортировки, что обычно ускоряет выполнение. Однако алгоритм поразрядной сортировки создает копию входного вектора и поэтому потребляет больше оперативной памяти. Выберите значение :dict, если объем доступной оперативной памяти ограничен.

  • :dict: используется метод на основе Dict, который обычно выполняется медленнее, но потребляет меньше оперативной памяти и является безопасным для любого типа данных.