访问数组元素
对数组而言,访问元素的方式可以通过切片和索引两种方式。在Numpy数据预处理库中,提供了许多索引,如整数索引、花式索引和布尔索引,我们可以通过这些索引我们可以实现一个、多个或者一行元素的访问。
1.整数索引
整数索引可以用来访问数组元素,用来获取数组中的一个元素或者一行元素。其用法类似于列表访问元素的方式,会根据索引获取相应位置的元素。例如:
array_1d = np.arange(3, 8)
print(array_1d)
输出为:
[3 4 5 6 7]
# 获取索引为2的元素
print(array_1d[2])
输出为:
5
当然,如果数组为二维数组的话,则会返回对应索引的二维数组的一整行元素,并以一维数组的形式返回。
例如:
import numpy as np
array_2d = np.arange(1, 13).reshape(3, 4)
print(array_2d)
输出为:
[[1 2 3 4]
[5 6 7 8]
[9 10 11 12]]
# 获取索引为1的一行元素
print(array_2d[1])
输出为:
[5 6 7 8]
当然如果想访问二维数组的单个元素,可以使用“二维数组[行索引,列索引]”
的形式实现。
例如:
# 获取行索引为1、列索引为2的元素
print(array_2d[2, 3])
输出为
12
2.花式索引
花式索引是Numpy预处理库中形式较为复杂的索引之一,是指用整数组成的数组或者列表作为索引。当使用花式索引访问一维数组时,会按顺序获取索引对应位置的元素,并以数组的形式返回。
例如:
import numpy as np
array_1d = np.arange(1, 9)
print(array_1d)
# 访问索引为[2,5,8]的元素
print(array_1d[[2, 6]])
输出为:
[1 2 3 4 5 6 7 8]
[3 7]
3.布尔索引
布尔索引是是Numpy预处理库中另一个较为复杂的索引,他是以布尔值构成的数组为索引。使用布尔索引访问数组的时候,会根据条件生成一个与数组同样的布尔数组,然后将这些行元素以一维数组的形式进行返回。
例如:
# 使用布尔索引访问数组
print(array_2d > 5)
print(array_2d[array_2d > 5])
[[False False False False]
[False True True True]
[ True True True True]]
输出为:
[6 7 8 9 10 11 12]
当然,利用切片的方法也能访问元素。