Векторизация numpy 1D функция массива, которая вычитает следующий элемент и добавляет предыдущий? - PullRequest
0 голосов
/ 03 мая 2020

У меня есть простой массив 1D numpy, подобный следующему:

np.array([2,1,3,5,1])

Как я могу векторизовать функцию, которая для каждого элемента вычитает следующий элемент и добавляет предыдущий? В случае выше, я ожидал бы что-то, что возвращает:

[?, 1-3+2, 3-5+1, 5-1+3, ?]
=[?, 0, -1, 7, ?]

, где? означает, что меня не волнует значение элемента. Эта операция будет выполняться в одномерном массиве np.ar с 1 миллионом элементов (тип double).

1 Ответ

0 голосов
/ 03 мая 2020

Как указано в комментарии, нарезка сделает то, что вам нужно:

a=np.array([2,1,3,5,1])
print(a[1:-1]+a[:-2]-a[2:])

Результатом будет массив [0, -1,7] со значениями, которые вас интересуют.

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