Numpy学习第五课:数组的切片和索引

119 阅读2分钟

前言

本节课程将带大家了解数组的切片和索引,那么什么是切片?什么是索引?

含义

什么是切片?

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]]