学科分类
目录
数据分析

花式(数组)索引的基本使用

花式索引是NumPy的一个术语,是指用整数数组或列表进行索引,然后再将数组或列表中的每个元素作为下标进行取值。

当使用一个数组或列表作为索引时,如果使用索引要操作的对象是一维数组,则获取的结果是对应下标的元素;如果要操作的对象是一个二维数组,则获取的结果就是对应下标的一行数据。

例如,创建一个4行4列的二维数组,示例代码如下。

In [67]: import numpy as np
In [68]: demo_arr = np.empty((4, 4))        # 创建一个空数组
         for i in range(4):
             demo_arr[i] = np.arange(i, i + 4)  # 动态地为数组添加元素
In [69]: demo_arr
Out[69]: 
array([[ 0., 1., 2., 3.],
​    [ 1., 2., 3., 4.],
​    [ 2., 3., 4., 5.],
​    [ 3., 4., 5., 6.]])

将[0,2]作为索引,分别获取demo_arr中索引0对应的一行数据以及索引2对应的一行数据,示例代码如下。

In [70]: demo_arr[[0, 2]]    # 获取索引为[0,2]的元素
Out[70]: 
array([[ 0., 1., 2., 3.],
​    [ 2., 3., 4., 5.]])

上述操作的相关示意图如图1所示。

img

图1 花式索引图示(一个数组当索引)

如果使用两个花式索引操作数组时,即两个列表或数组,则会将第1个作为行索引,第2个作为列索引,通过二维数组索引的方式,选取其对应位置的元素,示例代码如下。

In [71]: demo_arr[[1, 3], [1, 2]]   # 获取索引为(1,1)和(3,2)的元素
Out[71]: 
array([ 2., 5.])

上述操作的相关示意图如图2所示。

img

图2 花式索引图示(两个数组当索引)

点击此处
隐藏目录