栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数组切片[Python]

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组切片[Python]

numpy生成数组的方法

多维数组的理解

        ..........

        (a)                        (b)                        (c)                                (d)

简单理解,一维数组就是一个向量,二维数组是一个矩阵,三维数组就是有几个矩阵,四维数组就是有几个这样的三维立方体,如上图,将图a复制4份就变成了图b的二维,将图b复制3份就变成了图c的三维,将图c复制3份就变成了图d的四维,所以将图d复制n份就会变成五维,以此类推。。

多维数组的切片

单维数组的切片是基于索引号,多维数组的切片是基于维度的。比如有一个一维数组:

>>>a = np.arange(9)
>>>print(a)
[0 1 2 3 4 5 6 7 8]

>>>print(a[0:3])
[0 1 2]
>>>print(a[:])
[0 1 2 3 4 5 6 7 8]

使用 [:] 表示从开始到结束的切片,所有的索引值都是从0开始的,切片操作都是左闭右开的区间,比如[0:2]意思是0,1

将一维数组变成二维数组:

>>>a = np.arange(9).reshape(3,3)
>>>print(a)
[[0 1 2]
 [3 4 5]
 [6 7 8]]

>>>print(a[0,1])
1

二维数组的切片就是选取第几行第几列的值,上述代码取得就是第0行第1列的值

下面生成一个三维数组:

>>>a = np.arange(18).reshape(2,3,3)
>>>print(a)
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]]

>>>print(a[0,1:2,0:2])
[[3 4]]

三维数组的切片就是从维数最高开始选取,a[0,1:2,0:2]中的0表示选取第0个矩阵

 ,1:2表示选取第0个矩阵的第1行,0:2表示第0个矩阵的0到1列。

其中[:]表示某个维度下的所有值,如下图代码:a[0,1,:]中的:表示所有列,a[:,:,:]表示所有矩阵的所有行以及所有列。

>>>a = np.arange(18).reshape(2,3,3)
>>>print(a)
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]]
>>>print(a[0,1,:])
[3 4 5]

>>>print(a[:,:,:])
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]]

 其中多个冒号可以用一个省略号(…)来代替,比如上面的a[:,:,:]可以用a[...]代替。

之前看到过一个很形象的比如,一维数组呢其实就是一条线,二维数组就是一个面,三维数组就是多个面组成的一本书,四维数组就是多本书组成的书架,五维数组就是多个书架,,,至于多维数组的切片也就是从哪个书架上取哪本书,然后翻到哪一页,找到哪一个知识点。

也可以参考https://blog.csdn.net/qq_32727339/article/details/82822736

如有错误,还请指正!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656133.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号