龙空技术网

在python编程中什么是切片?如何通过切片快速获取数据结构中元素

人工智能技术分享AI 321

前言:

当前同学们对“python切片读取”大概比较关怀,姐妹们都需要学习一些“python切片读取”的相关知识。那么小编同时在网络上收集了一些有关“python切片读取””的相关资讯,希望小伙伴们能喜欢,姐妹们快快来了解一下吧!

专栏推荐切片

一维数组的索引和切片

我们通过一些例子来帮助我们理解数组中的切片操作。

g[3:7]表示获取数组中的索引下标3到6

g[:7:2]= g[0:7:2]表示获取数组中的索引0到6的,然后以2为步长选取元素

g[::-1] 利用负数下标翻转数组

8. 多维数组的切片和索引

这里我们先创建了一个一维数组,然后使用reshape函数将一维数组的改为三维数组,维度为(2,3,4),2,3,4的对应关系如上所示。这里要注意一点的是g.reshape方法返回更改维度的数组,但是它没有修改数组本身,我们可以reshape之后的数组将其赋值给一个变量,这样我们才可以看到reshape之后的数组,本例就是reshape之后将其赋值给了g,然后g就是(2,3,4)的数组了。

reshape之后没有赋值的:

reshape之后赋值的:

现在我们对g数组进行切片操作:

现在我们逐一对上面的切片操作进行解析,我们先来看一下我们切片的数组:

切片是按照维度来逐一切片的,本例中我们的数组的维度是(2,3,4),我们切片的时候,是先切第一维(2),再切第二维(3),最后切第三维(4),这是有顺序的。

切片的时候:表示所有,表示所在维度的所有。

不同维度之间切片用逗号隔开,比如a[0,0,0]逗号隔开了第一个维度我们要0,第二个维度我们还要0,第三个维度我们还是要0,所以最终a[0,0,0]为0:

解析4:g[0,:,:]表示第一维度切0,第二个维度全切了(全要了),第三个维度也全要了,当多个冒号可以用一个省略号(...)来代替,因此上面的代码等价于g[0,…]。

解析7: g[0,1,::2]表示第一维度切0,第二维度切1,第三维度所有并且以2为步长(::2这种组合要注意)。

解析8:…表示多个冒号,所以8我们也可以写为g[:,:,1]

解析11:第一维切0,也就是

第二维切:,表示所有,也就是

第三维-1表示倒着数第一,也就是

那么最终结果为

解析12:g[0,::-1,-1],这个第一维度切0,此时为

第二维度为反转(::-1的作用就是反转),此时为

第三维-1,表示倒着数第一

所以最终的结果就是array([11, 7, 3])

解析13:g[0,::2,-1]

第一维切0,此时为

第二维的操作是步长为2的获取,此时为:

第三维为倒数第一

解析14:g[::-1],这个表示第一维执行反转操作,第二维和第三维的操作并没有写,也就是没有操作,没有操作那么就是获取所有的意思。

9. 改变数组的维度

ravel表示将数组展平

我们可以看出来ravel将数组展平,它会返回一个展平的数组,单并没有修改数组本身,这个和reshape是一样的。

flatten函数也有展平数组的作用

reshape()函数可以修改矩阵的维度,单并没有修改矩阵本身

resize和reshape一样可以修改数组的维度,但是resize可以修改数组本身

和resize类似我们可以使用shape来改变矩阵的维度:

使用shape要注意两点,第一点=,第二点传递一个元组()

可以使用transpose完成矩阵的转置:

总之我们记住两点,只有resize和shape(元组)是对数组本身修改

标签: #python切片读取