【数据分析之道-NumPy(三)】numpy切片与索引

文章目录

  • 专栏导读
  • 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中的切片和索引。
【数据分析之道-NumPy(三)】numpy切片与索引_第1张图片

2、NumPy数组切片

2.1一维数组切片

切片是指获取数组的部分数据。在NumPy中,可以使用切片符号:来指定切片范围。

下面是一个简单的例子:

import numpy as np

a = np.array([1, 2, 3, 4, 5])
print(a[1:3])

这个例子中,我们创建了一个包含5个元素的一维数组,并使用a[1:3]来获取索引为1和2的元素。切片结果为[2, 3]。

2.2多维数组切片

除了一维数组,切片也可以用于多维数组。

例如:

import numpy as np

a = 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 np

a = np.array([1, 2, 3, 4, 5])
print(a[3])

这个例子中,我们创建了一个包含5个元素的一维数组,并使用a[3]来获取索引为3的元素。索引结果为4。

3.2多维数组索引

对于多维数组,可以使用一个元组来索引。

例如:

import numpy as np

a = 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 np

a = 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 np

a = 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 np

a = 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 np

a = 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 np

a = 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 np

a = 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博客,创作不易,如果觉得文章不错,可以点赞收藏评论
你的支持和鼓励是我创作的动力❗❗❗

你可能感兴趣的:(数据分析之道,numpy,python,开发语言)