前言
本节课程将带大家了解数组的切片和索引,那么什么是切片?什么是索引?
含义
什么是切片?
Python中的数组切片是指从现有数组中提取子数组的过程。它允许你访问数组的部分或全部元素,而不需要复制它们。
什么是索引?
在Python中,数组或列表的索引是用于访问特定元素的数字。索引从0开始,也就是第一个元素的索引是0,第二个元素的索引是1,依此类推。
用法
切片操作的基本语法是:array[start:stop:step]
start是切片开始的位置,如果不指定,默认为0。stop是切片结束的位置,但不包括这个位置的元素。如果不指定,默认为数组的长度。step是步长,表示取值间隔,默认为1。
实例代码
import numpy as np
# 从索引 2 开始到索引 7 停止,间隔为 2
a = np.arange(10)
s = slice(2, 7, 2)
print(a[s])
import numpy as np
# 切片中冒号的使用
# 先创建一个数组
a = np.arange(10)
print('原始数组')
print(a)
print('使用冒号之后的数组,输出下标3后面的所有值')
print(a[3:])
# 输出结果:
# 原始数组
# [0 1 2 3 4 5 6 7 8 9]
# 使用冒号之后的数组
# [3 4 5 6 7 8 9]
import numpy as np
# 多维数组同样适用于上述索引提取方法
# 1.创建一个多维数组
a = np.arange(9).reshape(3, 3)
print('原始数组')
print(a)
print('从数组索引 a[1:]处进行切割后的数组')
b = a[1:]
print(b)
# 输出结果:
# 原始数组
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
# 从数组索引 a[1:]处进行切割后的数组
# [[3 4 5]
# [6 7 8]]
另类用法
数组的切片省略号的用法,切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。
import numpy as np
# 切片省略号的使用方式
# 先创建一个多维数组
a = np.arange(12).reshape(3, 4)
print('原始数组a')
print(a)
# 省略号在不同位置输出的内容
# 取前面所有维度的第0列
print(a[..., 0])
print('\n')
# 取第二行的所有元素
print(a[1, ...])
print('\n')
# 取第2列及剩下的所有元素
print(a[..., 1:])
# 输出结果:
#
# 原始数组a
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
#
#
# [0 4 8]
#
#
# [4 5 6 7]
#
#
# [[ 1 2 3]
# [ 5 6 7]
# [ 9 10 11]]