资料内容:
ndarray 可以使用标准的 Python x[obj] 语法进行索引,其中 x 是数组,obj 是选择
对象。根据 obj 的不同,有多种索引方式可用:基本索引、高级索引和字段访问。
以下大多数示例展示了在引用数组中的数据时使用索引的方法。这些示例在赋值
给数组时同样适用。
请注意,在 Python 中,x[(exp1, exp2, ..., expN)] 与 x[exp1, exp2, ..., expN] 是等价的;
后者只是前者的语法糖。
1 基本索引
单元素索引
单元素索引的操作方式与其他标准 Python 序列完全相同。它是基于 0 的,并且
接受负索引以从数组末尾进行索引。
>>> x = np.arange(10)
>>> x[2]
2
>>> x[-2]
8
无需将每个维度的索引分别放在各自的方括号中。
>>> x.shape = (2, 5) # now x is 2-dimensional
>>> x[1, 3]
8
>>> x[1,-1]
9
请注意,如果用一个维度数少于数组维度的索引来索引多维数组,将会得到一个
低维的子数组。
例如:
>>> x[0]
array([0, 1, 2, 3, 4])
即,每个指定的索引都会选择一个对应于其余选定维度的数组。在上面的示例中,
选择 0 意味着长度为 5 的剩余维度未被指定,返回的是一个具有该维度和大小的
数组。必须注意的是,返回的数组是一个视图,即它不是原始数组的副本,而是
与原始数组指向内存中相同的值。在这种情况下,返回的是第一个位置(0)处的一维数组。因此,在返回的数组上使用单个索引时,将返回一个单一元素。即:
>>> x[0][2]