Numpy的索引和切片技巧有哪些

2025-07-18 20:52:09

推荐大家收藏本经验,以后再遇到关于Numpy的“花式”索引或切片直接来查就好啦!

Numpy的索引和切片技巧有哪些

工具/原料

Python 3

Numpy

一维数组的索引

1、Numpy的一维数组的索引基本方法和python中列表的索引操作基本相同。(对基本的列表索引还不太熟悉的话,推荐看下相关经验哦~)

Numpy的索引和切片技巧有哪些

2、除了列表的那些索引方法,Numpy提供了索引数组索引的方式,可以通过索引数组获取多个不连续的值。

Numpy的索引和切片技巧有哪些

3、我们可以这么来理解:1. 我们提供了一维的索引数组长度为 N。2.1 Numpy负责遍历这个数组,每次取出一个索引。2.2 Numpy创造出和索引数组一样维度大蟛杆戛攉小的空数组。3. Numpy使用这个索引去找到数据数组中对应的值。4. 将获取的值放到对应位置的空数组中。5. 返回填充好的空数组。

Numpy的索引和切片技巧有哪些

4、此外根据上面的理解方式,我们就能知道索引数组不一定是一维的。索引数组的用处茧盯璜阝就是提供一系列索引值,表示单个下标;并且提供返回数组的形状。所以也能提供二维索引数组来进行一维数组的索引, 不同之处在于返回结果维度和形状大小的不同。

Numpy的索引和切片技巧有哪些

二维数组的单维度索引

1、二维数组需要两个下标(x, y)来定位元素,但是我只传入x这一个维度呢?这样Numpy就会返回对应的一行,也就是选择所有列。

Numpy的索引和切片技巧有哪些

2、那么和一维数组的区别在于,一维数组的单个索引获取的是一个值,而二维数组的单个索引获取的是一行值(向量),然后填充到空数组中。

Numpy的索引和切片技巧有哪些

3、同样的我们也能传入二维索引数组,唯一的不同就是返回值的维度和形状不同。

Numpy的索引和切片技巧有哪些

二维数组的多维度索引

1、这次我们针对二维数组要传入(x, y)啦,其实也好理解,原理都是一样的!如果x和y维度相同,那么我们就每次各从x和y中取出一个,然后找到值返回。

Numpy的索引和切片技巧有哪些
Numpy的索引和切片技巧有哪些

2、如果x和y的维度不同呢,先迭代x,取出来后再次比较维度,如果维度一致即可查找返回,如果不一致,继续迭代。

Numpy的索引和切片技巧有哪些

广播机制

1、在二维数组的索引过程中,如果我们选择了多行,但是列都想取2,传入一个全为2的索引数盲褓梆尺组是不是很费劲呢?这时候广播机制就能很好的帮上我们的忙啦!

Numpy的索引和切片技巧有哪些

2、利用广播的思想,我们此时只需要传入标量2,剩下的就交给Numpy就好了,实验证明,Numpy不仅成功的做到了而且速度还更快!

Numpy的索引和切片技巧有哪些

3、所以当x和y维度一致,但是形状大小不一致,可以使用广播,使得大小匹配。

Numpy的索引和切片技巧有哪些

4、测试一下如果想要匹配所有行的第1列如何打印呢?在这里我们使用了符号“:”。

Numpy的索引和切片技巧有哪些

5、如果想要匹配所有行的第1列和第3列如何做呢?

Numpy的索引和切片技巧有哪些

6、如果想要匹配所有奇数行的第1列和第3列如何做呢(第一行索引是0)?

Numpy的索引和切片技巧有哪些

布尔索引

1、布尔索引通常被用于赋值。我们在传入索引时,传入的是和数据数组形状大小一致的bool数组,通过这个布尔数组定位到数据位置,然后进行值的更新。获取布尔数组的方法Numpy也帮我们实现啦!

Numpy的索引和切片技巧有哪些

2、多个条件其实就是对多个布尔数组的交集或并集操作。

Numpy的索引和切片技巧有哪些
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢