Индексирование массива из второго элемента для всех элементов - PullRequest
0 голосов
/ 06 апреля 2020

Я думаю, что это должно быть легко, но я не могу гуглить. Предположим, у меня есть массив чисел 1, 2, 3, 4.

import numpy as np

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

Как индексировать массив, если я хочу последовательность 2, 3, 4, 1 ?? Я знаю, что для последовательности 2, 3, 4 я могу выбрать, например:

print(a[1::1])

Ответы [ 2 ]

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

Если вы хотите повернуть список, вы можете использовать deque вместо numpy массива. Эта структура данных предназначена для такого рода операций и напрямую обеспечивает функцию поворота.

>>> from collections import deque
>>> a = deque([1, 2, 3, 4])
>>> a.rotate(-1)
>>> a
deque([2, 3, 4, 1])

Если вы хотите использовать Numpy, вы можете проверить функцию roll.

>>> import numpy as np
>>> a = np.array([1,2,3,4])
>>> np.roll(a, -1)
array([2, 3, 4, 1])
0 голосов
/ 06 апреля 2020

Один из возможных способов - определить набор индексов (список).

index_set = [1, 2, 3, 0]
print(a[index_set])
...