列表、数组切片X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]

您所在的位置:网站首页 五列六行是什么意思 列表、数组切片X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]

列表、数组切片X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]

2023-12-26 17:43| 来源: 网络整理| 查看: 265

python中对于列表和数组进行切片是很频繁的

1.列表切片

python中符合序列的有序序列都支持切片,例如列表、字符串、元祖。

格式:【start:end:step】

start:开始索引;end:结束索引;step:步长(步长为正时,从左到右索引,正序取值;步长为负时,从右到左索引,倒序取值)

1.1 正序索引:步长step>0,索引的时候从左往右数,

a = [1,2,3,4,5,6] a[:3:1] #默认索引start从 1 开始 >>>[1,2,3] a[:3] #默认步长为 1 >>>[1,2,3] a[-4:-2:1] >>>[3,4] a[-4:4:1] >>>[3, 4]

1.2 倒序索引:步长step>>[6, 5, 4] #默认从 -1 开始 a[3:0:-1] >>>[4,3,2] #倒序索引 a[-2:2:-1] >>>[5,4] 2.数组切片(数组形式,若是一个大列表,可以np.array(list)转成数组) 2.1 二维数组,X【行,列】 

对于X[:,0] ,取二维数组中第一列所有行的数据

对于X[1,:],取二维数组中第二行所有列的数据

对于X[:,m:n] ,取二维数组中第m列到第n-1列所有行的数据

对于X[m:n,:],取二维数组中第m行到第n-1行所有列的数据

2.2 三维数组,X【楼层,行,列】

创建一个三维数组:

a = np.arange(24).reshape(2,3,4) print(a) 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]]])

我们可以形象的把它看成一个两层楼的建筑,每层楼有12个房间,并排列成3行4列。

(1)可以用三维坐标来选定任意一个房间,即楼层、行号、列号。例如,选定第一层楼、第一行、第一列的房间,如下:

a[0,0,0] >>>0

(2)选取所有楼层、第一行、第一列的房间 ,如下:

a[:,0,0] >>>array([ 0, 12])

(3)选取第一层楼所有的房间,如下:

a[0] >>>array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])

对于X[:,:,0],取三维数组中第1列的所有楼层,所有行的数据

对于X[:,:,m:n],取三维数组中第m列到第n-1列的所有楼层,所有行的数据 

a[:,:,2:4] >>>array([[[ 2, 3], [ 6, 7], [10, 11]], [[14, 15], [18, 19], [22, 23]]])

注:以上数组形式的切片方法,在矩阵中同样适用。但是,若要取某个准确的值时,比如说第一列,第二行这一准确值时,矩阵的话,最好用mat[1,2],而数组的话,既可以用array[1,2],也可以用array[1][2] 。

 

 

 

 

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3