Проблема с пониманием нарезки массива - PullRequest
0 голосов
/ 20 мая 2019

При разрезании массива Numpy он выглядит мне непоследовательным.

In[87]: y
Out[87]: 
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

In[88]: y[0,0]
Out[88]: 1

y[0,0] - это 1. Это нормально, но когда я набираю

In[89]: y[0,0:1]
Out[89]: array([1])

Почему срез [0,0:1] массив с одним значением [1]? Я скорее ожидал array[1,4], что происходит, когда я печатаю

In[90]: y[0,0:2]
Out[90]: array([1,4])

, где я бы предпочел array[1,4,7], поскольку y[0,2] равно 7.

Кстати, если важно, я использую дистрибутив Anaconda 2019.

In[91]: import sys
   ...: print(sys.version)
3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)]

Кто-нибудь знает, почему индексы нарезки выглядят так запутанно? Спасибо

1 Ответ

0 голосов
/ 20 мая 2019

Numpy использует ту же запись среза, что и Python, т. Е. [start:stop:step].

Как правило, значение в индексе stop исключается из результирующей последовательности.

Более подробную информацию вы можете найти в параграфе 3 этого урока .

Срез начинается с индекса «от» и заканчивается на один элемент перед индексом «до».

...