【发布时间】:2019-05-20 15:24:57
【问题描述】:
在对 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)]
有人知道为什么切片索引看起来如此混乱吗? 谢谢
【问题讨论】:
-
在分割字符串和列表时会出现同样的模式:
abcde'[0:2]和[0,1,2,3,4][0:2]。和范围:list(range(2))和np.arange(0,2)。全部产生一个长度为 2 项的结果。 -
Python 中的切片一般是半开区间。所以 [0:1] 是 0 到 1,不包括 1,所以只有 0。同样 [0:2 ] 是 0 到 2 不包括 2 所以 0, 1。
标签: python arrays numpy matrix-indexing