开发手册 欢迎您!
软件开发者资料库

Python NumPy 数组(Array)切片

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 数组(Array)切片。

1、数组切片

在python中,切片意味着从一个给定索引获取元素到另一个给定索引。

我们这样传切片而不是索引:[start:end]

我们还可以这样定义step:[start:end:step]

如果我们不传start,则将其视为0

如果我们不传end,则考虑该维度中数组的长度

如果我们不传step,则将其视为1

例如:

从以下数组中将元素从索引1切片到索引5:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])print(arr[1:5])

注意:结果包括开始索引,但不包括结束索引。

例如:

将元素从索引4切片到数组的末尾:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])print(arr[4:])

例如:

从开始到索引4切片元素(不包括在内):

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])print(arr[:4])

2、负切片

使用减号运算符从头开始引用索引:

例如:

从末尾的索引3切片到末尾的索引1:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])print(arr[-3:-1])

3、步长(step)

使用step值确定切片的步长:

例如:

将所有其他元素从索引1返回索引5:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])print(arr[1:5:2])

例如:

返回整个数组中的所有其他元素:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])print(arr[::2])

4、二维数组(2-D Array)切片

例如:

从第二个元素开始,对从索引1到索引4的元素进行切片(不包括在内):

import numpy as nparr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])print(arr[1, 1:4])

注意:请记住,第二个元素的索引为1。

例如:

从这两个元素返回索引2:

import numpy as nparr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])print(arr[0:2, 2])

例如:

从两个元素切片索引1到索引4(不包括在内),这将返回一个二维数组:

import numpy as nparr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])print(arr[0:2, 1:4])