从左到右索引默认0开始,从右到左索引默认-1开始。
通过冒号分隔切片参数start:stop:step
来进行切片操作。
import numpy as np
a=[1,2,3.4,5]
返回与该索引相对应的单个元素。
表示复制 a[i]
到a[j-1]
,以生成新的list对象。(左闭右开)
① i 缺省时:默认为0。即 a[:n] 相当于 a[0,n] 。
② j 缺省时:默认为 len(alist)。即 a[m:] 相当于 a[m,len(a)] 。
③ i 和 j 都缺省时,a[:] 相当于 完整复制 a。
print(a[-1]) 取最后一个元素
结果:[5]
print(a[:-1]) 除了最后一个取全部
结果:[ 1 2 3 4 ]
print(a[1:]) 取第二个到最后一个元素
结果:[2 3 4 5]
s表示步进,缺省为1。(-1时表示翻转读取)
s='abcdefg'
print(s[0:4] #输出abcd
print(s[0:4:2]) #步长为 2(间隔一个位置)来截取,输出ac
s<0时:i 缺省时,默认为-1;j 缺省时,默认为-len(a)-1。
a[::-1]相当于a[-1:-len(a)-1:-1] ,即从最后一个元素到第一个元素复制一遍。
print(a[::-1]) 取从后向前(相反)的元素
结果:[ 5 4 3 2 1 ]
print(a[2::-1]) 取从下标为2的元素**翻转读取**
结果:[ 3 2 1 ]
X[n0,n1]是通过numpy库引用二维数组或矩阵中的某一段数据集的一种写法。
import numpy as np
X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])
#X 是一个二维数组,维度为 0 ,1;第 0 层 [] 表示第 0 维;第 1 层 [] 表示第 1 维;
表示取第0维
的第n0个元素
,继续取第1维
的第n1个元素
。
# X[n0,n1] 表示第 0 维 取第n0 个元素 ,第 1 维取第 n1 个元素
print(X[1,0])
# 结果:
10
表示取 第0维
的第 s0 到 e0 个元素
,继续取 第1维
的第 s1 到 e1 个元素
(左闭右开)。
# X[1:3,1:3] 表示第 0 维 取 (1:3)元素 ,第 1 维取第(1:3) 个元素
print(X[1:3,1:3])
# 结果:
[[11 12]
[21 22]]
# X[:n0,:n1] 表示第 0 维 取 第0 到 第n0 个元素 ,第 1 维取 第0 到 第n1 个元素
print(X[:2,:2])
# X[:,:n1] 表示第 0 维 取 全部元素 ,第 1 维取 第0 到第n1 个元素
print(X[:,:2])
# X[:,0]) 表示第 0 维 取全部 元素 ,第 1 维取第 0 个元素
print(X[:,0])
# 结果
[[ 0 1]
[10 11]]
[[ 0 1]
[10 11]
[20 21]
[30 31]]
[ 0 10 20 30]
个人理解:二维数组的切片规则基于一维数组,高维数组的切片只要按照一维数组的规则对每一维进行切片即可。
参考资料:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。