NumPy: Как наиболее эффективно / идиоматически добавить значение ко всем элементам в массиве после индекса? - PullRequest
0 голосов
/ 05 мая 2018

Я хочу добавить значение ко всем элементам одномерного массива после определенного индекса.

Например, мой оригинальный массив выглядит так:

[0, 1, 2, 3, 4, 5, 6]

и я хочу добавить 1 ко всем элементам после индекса 2, чтобы получить следующий массив результатов:

[0, 1, 2, 4, 5, 6, 7]

Каков наиболее эффективный способ сделать это с точки зрения производительности и использования «идиоматического» Python / NumPy (т.е. без использования цикла)? Кажется, что понимание списка не лучший подход, так как я имею дело с массивами NumPy - я предполагаю, что есть разумный способ индексировать массив для этого, который также может быть более производительным.

Вот что я приготовил, используя понимание списка:

ary = np.array([0, 1, 2, 3, 4, 5, 6])
ix = 3
ary[ix:] = [x + 1 for x in ary[ix:]]

Есть ли лучший способ сделать это, или это достаточно хорошо?

1 Ответ

0 голосов
/ 05 мая 2018

Чтобы добавить value ко всем элементам массива ary в и после индекса ix:

ary[ix:] += value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...