NumPy: Как преобразовать форму ndarray с помощью преобразования с потерями - PullRequest
0 голосов
/ 27 апреля 2020

Рассмотрим ndarray, который содержит 2 точки данных (sample_rate_4[:,0], sample_rate_4[:,1]), выбранные 4 раза в секунду в течение 2 секунд. sample_rate_4[0,:] - это образец, взятый за 0 секунд, sample_rate_4[1,:] - это образец, взятый за 0,25 секунды ... sample_rate_4[8,:] - это образец, взятый за 2 секунды

In [84]: sample_rate_4                                                                               
Out[84]: 
array([[12, 13],
       [14, 15],
       [ 6,  7],
       [16, 17],
       [10, 11],
       [ 2,  3],
       [ 4,  5],
       [ 8,  9],
       [ 0,  1]])

Как эти данные можно преобразовать в эквивалентная выборка в х раз / секунд ?. Например, если x = 3, я бы ожидал следующий результат -

array([[12, 13],
       [14, 15],
       [16, 17],
       [10, 11],
       [ 2,  3],
       [ 8,  9],
       [ 0,  1]])

1 Ответ

1 голос
/ 27 апреля 2020

Если я понимаю проблему, то ваши данные содержат 4 выборки каждую секунду, и вы хотели бы удалять 4-ю выборку каждую секунду, чтобы у вас оставалось 3 выборки каждую секунду.

Это можно сделать как :

sample_rate_4 = array([[12, 13],
                       [14, 15],
                       [ 6,  7],
                       [16, 17], # this row will be removed
                       [10, 11],
                       [ 2,  3],
                       [ 4,  5],
                       [ 8,  9], # this row will be removed
                       [ 0,  1]])

out = np.delete(sample_rate_4, slice(3, None, 4), axis=0)

out
>>> array([[12, 13],
           [14, 15],
           [ 6,  7],
           [10, 11],
           [ 2,  3],
           [ 4,  5],
           [ 0,  1]])

slice(3, None, 4) используется для удаления каждой 4-й строки, начиная с 3-й строки и до конца (нет).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...