举例是用数组(array)举例的,同样适用于列表(List)和张量(Tensor)
原理
一维数据的切片和二、三维数组更高维的数据的切片有什么关联?
常见:
a[:-1] :一维数组,不要最后一个
a[1:] :一维数组,不要第0个,
b[:,:-1] : 二维数组,不要第二维的最后一个,即少了一列
c[:,:-1,:] :三维数组,只是不要第二维的最后一个
c[:,-1,:]:这里就是索引了,不是切片了,容易弄混乱,只要第二维最后一个元素
一维的切片: [start:end:step]:从start开始,不包括end,一般很少见到setp
二维甚至高维的:用逗号分隔每个维度就OKK
示例代码
import numpy as np
a= np.arange(6)
a
==>array([0, 1, 2, 3, 4, 5])
a[:-1]
==>array([0, 1, 2, 3, 4])
a[1:]
==>array([1, 2, 3, 4, 5])
b = np.arange(24).reshape(4,6)
b
==>array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
b[:,:-1]
==>array([[ 0, 1, 2, 3, 4],
[ 6, 7, 8, 9, 10],
[12, 13, 14, 15, 16],
[18, 19, 20, 21, 22]])
c = np.arange(24).reshape(2,3,4)
c
==>array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
c[:,:-1:]
==>array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[12, 13, 14, 15],
[16, 17, 18, 19]]])
c[:,-1,:]
==>array([[ 8, 9, 10, 11],
[20, 21, 22, 23]])
参考链接:https://blog.csdn.net/fr555wlj/article/details/108783091