np.repeat — это функция NumPy для повторения элементов массива заданное число раз. В контексте частотных и функциональных представлений данных она часто используется для восстановления выборки из частотного массива или для тиражирования значений без циклов.

Базовый синтаксис:

np.repeat(a, repeats, axis=None)

a — исходный массив
repeats — сколько раз повторять каждый элемент
axis — ось (если None, массив предварительно «выпрямляется»)

Простейший пример:

import numpy as np
 
a = np.array([1, 2, 3])
np.repeat(a, 2)

Результат:

[1 1 2 2 3 3]

Разное число повторов для элементов:

repeats = np.array([1, 3, 2])
np.repeat(a, repeats)

Результат:

[1 2 2 2 3 3]

Связь с bincount и частотными массивами:

Типичный паттерн:
– есть частотный массив counts
– индексы — значения
– нужно восстановить исходную дискретную выборку

counts = np.array([1, 2, 3])
values = np.arange(len(counts))
 
data = np.repeat(values, counts)

data будет:

[0, 1, 1, 2, 2, 2]

Работа с осью:

X = np.array([[1, 2],
              [3, 4]])
 
np.repeat(X, 2, axis=0)

Результат:

[[1 2]
 [1 2]
 [3 4]
 [3 4]]

Важно различать:

np.repeat — повторяет элементы
np.tile — повторяет блоки целиком

Когда используют np.repeat:

– восстановление выборки из частотного представления
– расширение данных по весам
– устранение циклов при тиражировании значений

Коротко:
np.repeat — векторизированный способ повторять элементы массива, часто используемый вместе с bincount для работы с дискретными частотными представлениями данных.