python 多维切片之冒号和三个点的用法介绍
初学python和numpy,对在学习多维切片的过程中遇到的问题做个总结。
一维切片就不说了,比较简单,先说下二维的,二维的理解了多维的就简单了。举个例子先建立一个5x5的二维数组
多维的切片是按照各个维度分别取
这里就分别输出第一维的2-3和第二维的3-5(索引从0开始)。
这里是行取全部,列取第3-5。
这里应该是大家最疑惑的地方了,为什么列的参数改成None,输出的shape都变了,这里大家要知道,None代表新增加一个维度,它有一个别称叫newaxis,大家可以输出一下numpy.newaxis就知道了,那么这个别称应该顾名思义了吧。那么为什么是5x1x5,而不是5x5x1呢,那是因为你在第二维上用了None,你如果在第三维上用就会变成5x5x1了,不信你看
这下大家应该明白了吧。就是说None放在哪一维,就会在哪一维上出现新的维度。
再看个更奇葩的
三个点是什么鬼,凭记忆这不是可以换行的操作么,但这里不是,它是省略所有的冒号来用省略号代替,大家看这个a[:, :, None]和a[…, None]的输出是一样的,就是因为…代替了前面两个冒号。这下应该清楚了。
至于三维以上的,那跟二维是一模一样啊。
以上这篇python 多维切片之冒号和三个点的用法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
深入解析Python中的list列表及其切片和迭代操作
有序列表list >>> listTest = ['ha','test','yes'] >>> listTest ['ha', 'test', 'yes'] len()获取list元素个数. >>> len(listTest) 3 可以用索引来访问每一个元素,0表示第一个,-1还可以表示最后一个,即倒数第一个,依此类推-2表示倒数第二个,超过了也会报越界错误. >>> listTest[0] 'ha' >>> lis
-
Python切片知识解析
切片原型 strs = 'abcdefg' Strs[start: end:step] 切片的三个参数分别表开始,结束,步长 第一位下标为0,end位不取,如strs[1:3] = 'bc' 如果start,end超出现有数组范围,按实际范围截断strs[-100:100]='abcdefg' Step为空时,缺省值为1 Strs[1:5] = 'bcde' strs[1:5:2] = 'bd' Step为正时,start<end,否则为空 Strs[5:1] = '' Start为空,默认为负
-
Python字符串切片操作知识详解
一:取字符串中第几个字符 print "Hello"[0] 表示输出字符串中第一个字符 print "Hello"[-1] 表示输出字符串中最后一个字符 二:字符串分割 print "Hello"[1:3] #第一个参数表示原来字符串中的下表 #第二个阐述表示分割后剩下的字符串的第一个字符 在 原来字符串中的下标 这句话说得有点啰嗦,直接看输出结果: el 三:几种特殊情况 (1)print "Hello"[:3] 从第一个字
-
Python切片用法实例教程
本文以实例形式讲述了Python中切片操作的用法,分享给大家供大家参考借鉴,具体如下: 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素,应该怎么做呢? 比较笨的办法如下: >>> [L[0], L[1], L[2]] ['Michael', 'Sarah', 'Tracy'] 之所以是笨办法是因为扩展一下,取前N个元素就
-
Python中序列的修改、散列与切片详解
前言 本文主要给大家介绍了关于Python中序列的修改.散列与切片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Vector类:用户定义的序列类型 我们将使用组合模式实现 Vector 类,而不使用继承.向量的分量存储在浮点数数组中,而且还将实现不可变扁平序列所需的方法. Vector 类的第 1 版要尽量与前一章定义的 Vector2d 类兼容. Vector类第1版:与Vector2d类兼容 Vector 类的第 1 版要尽量与前一章定义的 Vector2d
-
彻底理解Python list切片原理
关于list的insert函数 list#insert(ind,value)在ind元素前面插入value 首先对ind进行预处理:如果ind<0,则ind+=len(a),这样一来ind就变成了正数下标 预处理之后, 当ind<0时,ind=0,相当于头部插入 当ind>len(a)时,ind=len(a),相当于尾部插入 切片实例 Python中的列表切片非常灵活,要根据表象来分析它的内在机理,这样用起来才能溜. 下标可以为负数有利有弊,好处是使用起来更简便,坏处是当我下表越界了我
-
Python列表切片用法示例
本文实例讲述了Python列表切片用法.分享给大家供大家参考,具体如下: Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组. 格式:[start:end:step] start:起始索引,从0开始,-1表示结束 end:结束索引 step:步长,end-start,步长为正时,从左向右取值.步长为负时,反向取值 注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引 a=[1,2,3,4,5,6] b1=a[:] #省略全部,代表截取全部
-
Python中关于Sequence切片的下标问题详解
前言 在python中, 切片是一个经常会使用到的语法, 不管是元组, 列表还是字符串, 一般语法就是: sequence[ilow:ihigh:step] # ihigh,step 可为空; 为了简短易懂, 暂时排除step的用法考虑 先来简单示范下用法 sequence = [1,2,3,4,5] sequence [ilow:ihigh] # 从ilow开始到ihigh-1结束 sequence [ilow:] # 从ilow开始直到末尾 sequence [:ihigh] # 从头部开始
-
python切片的步进、添加、连接简单操作示例
本文实例讲述了python切片的步进.添加.连接简单操作.分享给大家供大家参考,具体如下: 步进切片: #coding:utf-8 a="123456" print a[::-1] #output 654321 print a[::-2] #output 642 print a[::2] #output 135 字符串添加: #coding:utf-8 a='123456789' a1=[] a1.extend(a[0:4]) a1.extend(a[4:]) print a1 #ou
-
python 多维切片之冒号和三个点的用法介绍
初学python和numpy,对在学习多维切片的过程中遇到的问题做个总结. 一维切片就不说了,比较简单,先说下二维的,二维的理解了多维的就简单了.举个例子先建立一个5x5的二维数组 多维的切片是按照各个维度分别取 这里就分别输出第一维的2-3和第二维的3-5(索引从0开始). 这里是行取全部,列取第3-5. 这里应该是大家最疑惑的地方了,为什么列的参数改成None,输出的shape都变了,这里大家要知道,None代表新增加一个维度,它有一个别称叫newaxis,大家可以输出一下numpy.new
-
python中not、and和or的优先级与详细用法介绍
前言 (小白专用)本次所分享的是Python中的not.and.or的执行时的优先级,以及他们的具体用法.本文比较详细,不喜勿喷. 一.not.and.or的含义以及优先级 对象 返回结果 优先顺序 not x if x is false,then True,else False 1 x and y if x is false,then x,else y 2 x or y if x is false,then y,else x 3 含义:not是 "非" :and是 "与&q
-
python多维数组切片方法
1.数组a第0个元素(二维数组)下的所有子元素(一维数组)的第一列 import numpy as np b=np.arange(24) a=b.reshape(2,3,4) print a print a[0,:,0] 2.取所有二维数组下的每个二维数组的第0个元素(一维数组) b=np.arange(24) a=b.reshape(2,3,4) print a print '--------------------' print a[:,0] 结果: [[ 0 1 2 3] [12 13 1
-
Python二维列表的创建、转换以及访问详解
目录 一.概念 二.创建二维列表 1.追加一维列标来生成二维列标 2.直接赋值生成二维列表 三.一维列标与二维列表的转换 1.一维列表转换成二维列表 2.二维列表转换成一维列表 3.利用NumPy实现数组的变维操作 四.访问二维列表 1.访问行 2.访问元素 3.NumPy二维数组的访问 补充:二维列表的实战应用 总结 一.概念 二维列表的元素还是列表(列表的嵌套),称之为二维列表. 需要通过行标和列标来访问二维列表的元素 二.创建二维列表 1.追加一维列标来生成二维列标 生成一个4行3列的二维
-
基于python 二维数组及画图的实例详解
1.二维数组取值 注:不管是二维数组,还是一维数组,数组里的数据类型要一模一样,即若是数值型,全为数值型 #二维数组 import numpy as np list1=[[1.73,1.68,1.71,1.89,1.78], [54.4,59.2,63.6,88.4,68.7]] list3=[1.73,1.68,1.71,1.89,1.78] list4=[54.4,59.2,63.6,88.4,68.7] list5=np.array([1.73,1.68,1.71,1.89,1.78])
-
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
让我们来看一个例子: import numpy as np x=np.array([[1,2,3],[5,6,7],[7,8,9]]) print(x) Out[64]: array([[1, 2, 3], [5, 6, 7], [7, 8, 9]]) 以上的结果我想大家应该没问题把,就是定义了一个np数组,关键在下面 print(x[:,::-1]) Out[65]: [[3 2 1] [7 6 5] [9 8 7]] 以上的代码实现了一种功能,就是将数组倒序排列了,每个维度上倒序,这段代码怎
-
python二维码操作:对QRCode和MyQR入门详解
python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个二维码了. QRCode 生成这个二维码只用一行 import qrcode qrcode.make("不睡觉干嘛呢").get_image().show() #设置URL必须添加http:// 安装导入QRCode pip install qrcode #方法多,体量小 安装导入MyQR
-
Python列表的切片实例讲解
之前讲过python列表的基本操作,我们今天继续讲解列表中的切片等操作,列表的切片就是根据索引取列表中的数据,切片并不会改变原列表.接下来跟着小编一起学习python列表的其他操作吧. 如下所示的列表test,我们截取test[1:3]的元素,因为下标从0开始,因此截取第1个和第二个数据,是不包括结尾的,默认的步长是1,我们还可以看到列表的分片操作实际上不影响原列表. 如果取test[:3]则表示下标从0开始取,相当于test[0:3]:如果取test[1:]则表示切片从索引1一直取到末尾:如果
-
详解Python进阶之切片的误区与高级用法
众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组...)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slice)就是一种截取索引片段的技术,借助切片技术,我们可以十分灵活地处理序列类型的对象.通常来说,切片的作用就是截取序列对象,然而,它还有一些使用误区与高级用法,都值得我们注意.所以,本文将主要跟大家一起来探讨这些内容,希望你能学有所获. 事先声明,切片并非列表的专属操作,但因为列表最具有代表性,所以,本文仅以列表为例作探讨. 1.切片的基础
-
Python:二维列表下标互换方式(矩阵转置)
我就废话不多说了,直接上代码吧! #!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: 617349013@qq.com @software: PyCharm @file: 二维列表下标互换(矩阵转置).py @time: 2018/12/30 10:24 """ ''' 矩阵转置 将[[1,2,3],[4,5,6],[7,8,9]]
随机推荐
- ASP.NET性能优化小结(ASP.NET&C#)
- Powershell实现编写和运行脚本
- PHP使用Redis替代文件存储Session的方法
- CHM 文档解包批处理代码
- php+mysql数据库查询实例
- 用javascript实现在小方框中浏览大图的代码
- 在Java编程中使用正则表达式的基本方法
- Nodejs实现的一个简单udp广播服务器、客户端
- linux修改目录和文件权限的简单命令解释
- SQL语法 分隔符理解小结
- SQL Server误区30日谈 第1天 正在运行的事务在服务器故障转移后继续执行
- 简单判断MSSQL数据库版本(2000或者2005)
- mysql 关键词相关度排序方法详细示例分析
- JQuery复制DOM节点的方法
- JS实现定时自动关闭DIV层提示框的方法
- React如何利用相对于根目录进行引用组件详解
- IIS支持WAP及ASP生成WML的设置方法
- 详解PHP swoole process的使用方法
- 把 CDATA 中的内容(有可能是不规范的Html代码)以Html方式展现出来。
- SpringMVC编程使用Controller接口实现控制器实例代码