NumPy: ссылки на элементы в обратном порядке - PullRequest
0 голосов
/ 02 февраля 2019

Я немного запутался в том, как ссылаться на элементы массива в обратном порядке: например:

arr = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]])
print(arr[1:3,:]) #gives me
[[ 6  7  8  9 10]
 [11 12 13 14 15]]

Однако

print(arr[3:1,:]  #gives me
[]

Могу ли я начать сэлемент 3 и печатать назад до элемента 1?Таким образом, ожидаемый результат составляет

[[11 12 13 14 15]
 [ 6  7  8  9 10]]

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Другая возможность для прямого выражения того факта, что вы индексируете в обратном направлении, - это использовать

arr[-2:,:]
array([[11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20]])

Далее вы можете написать явное приведение к списку, так как это то, что указано в вашем вопросе, как

(arr[-2:,:]).tolist()
[[11, 12, 13, 14, 15], [16, 17, 18, 19, 20]]
0 голосов
/ 02 февраля 2019

Вы можете нарезать наоборот, так от конца к началу.Однако обратите внимание, что при нарезке в python вы должны указать aList[start:stop:step], stop, не включенные.Таким образом, [1:3] вернется от первого до 3d элемента (3d не включено).

Таким образом, чтобы изменить порядок, вам нужно будет сделать arr[2:0:-1], как предполагает @danielmesejo, учитывая, что еслиВы сделали arr[3:0:-1], в этом случае элемент 3rd будет включен, и вы получите ошибку index out of range.Обратите внимание, что вы также должны указать step из -1, чтобы изменить порядок.

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