文章目录
- 专栏导读
- 1、前言
- 2、NumPy数组切片
- 2.1一维数组切片
- 2.2多维数组切片
- 3、NumPy数组索引
- 3.1一维数组索引
- 3.2多维数组索引
- 4、NumPy数组高级索引
- 4.1整数数组索引
- 4.2布尔数组索引
- 4.3数组索引
- 总结
专栏导读
✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。
✍ 本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
✍ 订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 还可以订阅进阶篇《数据分析之术》,其包含数据分析方法论、数据挖掘算法原理、业务分析实战。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》
1、前言
在NumPy中,切片和索引是常用的操作,可以用于获取数组中的部分数据或单个数据。下面我们将分别介绍NumPy中的切片和索引。
2、NumPy数组切片
2.1一维数组切片
切片是指获取数组的部分数据。在NumPy中,可以使用切片符号:来指定切片范围。
下面是一个简单的例子:
import numpy as npa = np.array([1, 2, 3, 4, 5])
print(a[1:3])
这个例子中,我们创建了一个包含5个元素的一维数组,并使用a[1:3]来获取索引为1和2的元素。切片结果为[2, 3]。
2.2多维数组切片
除了一维数组,切片也可以用于多维数组。
例如:
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[0:2, 1:3])
在这个例子中,我们创建了一个3x3的二维数组,并使用a[0:2, 1:3]来获取第1行至第2行(不包含第3行)和第2列至第3列(不包含第4列)的元素。切片结果为[[2, 3], [5, 6]]。
3、NumPy数组索引
索引是指获取数组中单个元素的值。在NumPy中,可以使用方括号[]和索引号来获取数组中的元素。
3.1一维数组索引
对于一维数组,可以使用一个整数来索引;对于多维数组,需要使用一个元组来索引。
下面是一个简单的例子:
import numpy as npa = np.array([1, 2, 3, 4, 5])
print(a[3])
这个例子中,我们创建了一个包含5个元素的一维数组,并使用a[3]来获取索引为3的元素。索引结果为4。
3.2多维数组索引
对于多维数组,可以使用一个元组来索引。
例如:
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[1, 2])
在这个例子中,我们创建了一个3x3的二维数组,并使用a[1, 2]来获取第2行、第3列(从0开始计数)的元素。索引结果为6。
4、NumPy数组高级索引
4.1整数数组索引
整数数组索引是指使用整数数组来获取数组的部分数据。在NumPy中,可以使用一个整数数组来获取一维数组的部分数据,或者使用两个整数数组来获取二维数组的部分数据。
下面是一个简单的例子:
import numpy as npa = np.array([1, 2, 3, 4, 5])
print(a[[0, 2, 4]])
这个例子中,我们创建了一个包含5个元素的一维数组,并使用[0, 2, 4]来获取索引为0、2、4的元素。结果为[1, 3, 5]。
对于二维数组,可以使用两个整数数组来获取部分数据。
例如:
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[[0, 2], [1, 2]])
在这个例子中,我们创建了一个3x3的二维数组,并使用[0, 2]和[1, 2]来获取第1行第2列和第3行第3列的元素。结果为[2, 9]。
4.2布尔数组索引
布尔数组索引是指使用布尔数组来获取数组的部分数据。在NumPy中,可以使用一个布尔数组来获取一维数组的部分数据,或者使用两个布尔数组来获取二维数组的部分数据。
下面是一个简单的例子:
import numpy as npa = np.array([1, 2, 3, 4, 5])
b = np.array([True, False, True, False, True])
print(a[b])
这个例子中,我们创建了一个包含5个元素的一维数组,并使用[True, False, True, False, True]来获取数组中所有为True的元素。结果为[1, 3, 5]。
对于二维数组,可以使用两个布尔数组来获取部分数据。
例如:
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([True, False, True])
c = np.array([False, True, True])
print(a[b, c])
在这个例子中,我们创建了一个3x3的二维数组,并使用[True, False, True]和[False, True, True]来获取第1行第3列和第2行第3列的元素。结果为[3, 6, 9]。
4.3数组索引
数组索引是指使用一个数组来获取数组的部分数据。在NumPy中,可以使用一个数组来获取一维数组的部分数据,或者使用两个数组来获取二维数组的部分数据。
下面是一个简单的例子:
import numpy as npa = np.array([1, 2, 3, 4, 5])
b = np.array([0, 2, 4])
print(a[b])
这个例子中,我们创建了一个包含5个元素的一维数组,并使用[0, 2, 4]数组来获取索引为0、2、4的元素。结果为[1, 3, 5]。
对于二维数组,可以使用两个数组来获取部分数据。
例如:
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([0, 2])
c = np.array([1, 2])
print(a[b, c])
在这个例子中,我们创建了一个3x3的二维数组,并使用[0, 2]和[1, 2]数组来获取第1行第2列和第3行第3列的元素。结果为[2, 9]。
总结
总的来说,切片和索引是NumPy中常用的操作,可以用于获取数组中的部分数据或单个数据。切片和索引都可以用于一维数组和多维数组,但在多维数组中需要使用元组来指定索引。
📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗