Ресэмплировать категориальный массив numpy - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть 1-мерный numpy массив labels (скажем, его длина 700k), сэмплированный при 700 Гц. Таким образом, это соответствует 1000 секунд данных временного ряда. Массив состоит из целых чисел от 0 до 3, которые обозначают некоторую категориальную информацию. Кроме того, категории редко меняются, например, 200 секунд 0, затем 150 секунд 2 и т. Д. ...

Теперь я хотел бы преобразовать его в массив 64 Гц, то есть новый длина массива будет 700k x (64/700) = 64k.

resampledLabels = scipy.signal.resample(labels, 64000)

Проблема с приведенным выше кодом состоит в том, что он делает некоторые предположения о массиве и выполняет интерполяции. Я попытался округлить их до ближайшего целого числа, но результат также содержал -1 , который фактически выходит за пределы диапазона фактического массива.

Моя проблема в том, как я могу выполнить повторную выборку массив без интерполяции?

1 Ответ

0 голосов
/ 20 апреля 2020

Я думаю, что вы можете просто numpy нарезки, который имеет формат start:stop:step. Это постоянное время и отражает возможные изменения, которые вы можете внести в массив с измененной выборкой. В вашем случае это будет: labels[0::64000]

...