python二维数组的切片,numpy一维数组切片
如果对象是二维数组,切片的形式必须是带冒号的x[:]。前后的冒号分别代表对象的第0维和第1维。
如果对象是3D数组,切片必须是x[:]。有两个冒号,分隔三个音程。前、中、后三个区间分别代表物体的第0、1、2维。
x[n,],x[:n],x[m:n,],x[:m:n]
上面的花括号(m:n)应该看作一个整体,用(m:n)以外的冒号表示要对哪个维度进行操作。
对于二维数组,冒号前的[n,]表示对二维数组中第0维的第n个元素的操作,冒号后的[,n]表示对二维数组中第1维的第n个元素的操作。当n替换为(m:n)时,意味着对第m到第n-1个元素的操作。
示例:
进口编号为NP
a=NP.array ([ 1,2,3,4 ]、[ 5,6,7,8 ]、[ 9,10,11,12 ]、[ 13,14,15,16 ]、[ 17,18,19,20 ]
打印(a.shape))。
Print (a [0,],a [0,]。形状))。
打印(a [1,],a [1,]。形状))。
打印(a (-1),a (-1)。形状))。
Print (a [0:2,],a [0:2,]。形状)))。
Print (a [:0],a [:0]。形状))。
Print (a [:1],a [:1]。形状))。
print(一个[:-1],一个[:-1]。形状).
Print (a [:0:2],a [:0:2])。形状))
执行结果如下。
(5,4 ) )。
[1234](4,
[5678](4,
[17181920](4,
[[1 2 3 4]
[56(7)8] ) 2,4 ) )。
[1591317](5,
[26101418](5,
[48121620](5,
[1(2]) ]
[5(6]) ]
[ 9 10]
[13 14]
([ 1718 ] (5,2 ) )。
进程结束,退出代码为0
在上面的例子中,a是shape=(5,4)的数组。第0维有5个元素,第1维有4个元素(元素不一定是单值,也可以是数组)。这里的元素名称是相对于某个维度的)。
A [0,],a [1,]和a [-1,]分别提取A的第0维中的第0,1和-1个元素,每个元素是一个4个元素的数组。
A [0:2,]提取a的第0维的第0个和第1个元素,这两个元素是4个元素的排列,它们共同构成一个二维排列。
A[:0]、a [:1]和a [:-1]分别提取A的第一维的0、1和-1个元素,每个元素为单个元素值。
A [:033602]提取了a的第一维的第0个和第1个元素,两个元素都是单元素值,形成一个二维数组。
x[n,3360]、x[:n:]、x [ :n]、x[m:n,33603360]、x[m:n
上面的花括号(m:n)应该看作一个整体。)除了m:n之外的两个冒号用来表示要对哪个维度进行操作。
在三维数组的情况下,2个冒号开头的(N)表示对三维数组第0维的第N个元素的操作,(2个冒号中间的N)表示对三维数组第1维的第N个元素的操作,(N)表示对三维数组第2个元素的操作当N替换为(m:n)时,表示对m到N-1个元素的操作。
示例:
进口编号为NP
b=NP.array ([ 1,2,3,4 ]、[ 5,6,7,8 ]、[ 9,10,11,12 ]),
[ 13,14,15,16 ]、[ 17,18,19,20 ]、[ 21,22,23,24 ],
[ 25,26,27,28 ]、[ 29,30,31,32 ]、[ 33,34,35,36 ],
] )
打印(b.shape))。
print (b [ 0,3360 ]、b [ 1、]、b [-1,3360 ]、b [ 033602、]))
Print (b [0,3360],b [3360 ]。形状)))))))))。
Print (b [1,3360],b [3360 ]。形状))。
Print (b (-1,3360),b (-1,)。形状)))。
print (b [ 0:2,]、b [ 0:2,3360 ]。世鹏科技电子
e)
print(b[:0:],b[:1:],b[:-1:],b[:0:2:])
print(b[:0:],b[:0:]。形状)
打印(b[:1:],b[:1:]。形状)
print(b[:-1:],b[:-1:]。形状)
print(b[:0:2:],b[:0:2:]。形状)
print(b[:0],b[:1],b[:-1],b[:0:2:])
print(b[:0],b[:0]。形状)
print(b[:1],b[:1]。形状)
print(b[:-1],b[:-1]。形状)
print(b[:0:2:],b[:0:2]。形状)
print(b[:0],b[:1],b[:-1],b[:0:2:])
print(b[:0],b[:0]。形状)
print(b[:1],b[:1]。形状)
print(b[:-1],b[:-1]。形状)
print(b[:0:2:],b[:0:2]。形状)
运行结果如下:
(3, 3, 4)
b[0,],b[1,],b[-1,],b[0:2,]
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]] (3, 4)
[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]] (3, 4)
[[25 26 27 28]
[29 30 31 32]
[33 34 35 36]] (3, 4)
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]]] (2, 3, 4)
b[:0:],b[:1:],b[:-1:],b[:0:2:]
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]]
[[25 26 27 28]
[29 30 31 32]
[33 34 35 36]]] (3, 3, 4)
[[[ 5 6 7 8]
[ 9 10 11 12]]
[[17 18 19 20]
[21 22 23 24]]
[[29 30 31 32]
[33 34 35 36]]] (3, 2, 4)
[[[ 9 10 11 12]]
[[21 22 23 24]]
[[33 34 35 36]]] (3, 1, 4)
[[[ 1 2 3 4]
[ 5 6 7 8]]
[[13 14 15 16]
[17 18 19 20]]
[[25 26 27 28]
[29 30 31 32]]] (3, 2, 4)
b[:0],b[:1],b[:-1],b[:0:2:]
[[ 1 2 3 4]
[13 14 15 16]
[25 26 27 28]] (3, 4)
[[ 5 6 7 8]
[17 18 19 20]
[29 30 31 32]] (3, 4)
[[ 9 10 11 12]
[21 22 23 24]
[33 34 35 36]] (3, 4)
[[[ 1 2 3 4]
[ 5 6 7 8]]
[[13 14 15 16]
[17 18 19 20]]
[[25 26 27 28]
[29 30 31 32]]] (3, 2, 4)
b[:0],b[:1],b[:-1],b[:0:2:]
[[ 1 5 9]
[13 17 21]
[25 29 33]] (3, 3)
[[ 2 6 10]
[14 18 22]
[26 30 34]] (3, 3)
[[ 4 8 12]
[16 20 24]
[28 32 36]] (3, 3)
[[[ 1 2]
[ 5 6]
[ 9 10]]
[[13 14]
[17 18]
[21 22]]
[[25 26]
[29 30]
[33 34]]] (3, 3, 2)
进程结束,退出代码为0
在上面的例子中,b是shape=(3,3,4)的数组。第0维有3个元素,第1维有3个元素,第2维有4个元素(元素不一定是单值,也可以是数组,这里的元素名称是相对于某一维的)。
B[0,],b[1,],B [-1,]分别提取了B的第0维上的第0,1和-1个元素。每个元素都是一个二维数组。
B[0:2,]提取了b的第0维上的第0和第1个元素,这两个元素都是二维数组,它们一起构成了三维数组。
b[:0:]、b[:1:]和B[:-1:]分别提取B的所有元素(都是4元素的单数组)、B的第一维上除0号以外的所有元素(都是4元素的单数组)、B的第一维上最后一个位置的所有元素(都
B[:0:2:]从b的第1维中提取了第0个和第1个元素,这两个元素都是4个元素的数组,它们一起构成了一个三维数组。
b[:0],b[:1]和B[:-1]分别从B的第二维中提取了0,1和-1个元素(这里的元素是4个元素的单个数组),每个元素是4个元素的数组。
B[:0:2]从B的第2维中提取了第0个和第1个元素(这里的元素是4个元素的单个数组),两个元素都是4个元素的数组。
b[:0],b[:1]和B[:-1]分别提取了B的第二维中所有元素(即一个4元素的数组)的第0,1和-1个元素值,每个元素都是单个元素值。
B[:0:2]从B的第2维(即4个元素的数组)的所有元素中提取第0个和第1个元素值。两个元素都是单元素值。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
标题:Python 2D数组和3D数组切片方法详解
本文地址:http://www.cppcns.com/jiaoben/python/265860.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。