python 切片[:]与[::]

对于切片总是一知半解,用到时总会卡住,故作文一篇。

[:]格式

[x=0:y]

x默认为0,表示从第一个数字(下标为0)开始,y默认为结尾,直到y(下标为y-1)结束,故截取第一到第y-1个数据。

import numpy as np
a=np.random.rand(5)
print(a)
print(a[:2])
[0.61494439 0.99290849 0.9869453  0.0821504  0.13804502]
[0.61494439 0.99290849]

[::]格式

[x=0:y:z=1]

z默认为1,表示间隔为|z|-1。

import numpy as np
a=np.random.rand(5)
print(a)
print(a[::2])
[0.47971577 0.84048377 0.63187542 0.50429043 0.29835274]
[0.47971577 0.63187542 0.29835274]

z=-1,表示间隔为0,但由于是负数,故从末位读起。

import numpy as np
a=np.random.rand(5)
print(a)
print(a[::-1])
[0.76323649 0.35310959 0.1707775  0.23204241 0.53846145]
[0.53846145 0.23204241 0.1707775  0.35310959 0.76323649]

将z改为-2,间隔为1,也是从末位读起。

[0.2483159  0.7683867  0.22377107 0.10587434 0.24032022]
[0.24032022 0.22377107 0.2483159 ]

在加上x=2

import numpy as np
a=np.random.rand(6)
print(a)
print(a[2::-2])
[0.19075475 0.81109042 0.67671804 0.26137435 0.72912879 0.67888605]
[0.67671804 0.19075475]

从下标为2开始,因为z=-2,所以系统从右到左判断,间隔为1

故读取了第三位然后再读取了第一位

考试时考了这个,可惜当初没搞懂

2022.7.4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值