python中省略号三个点(...)的作用
1ellipsis
三个点在python中的类别名称叫做ellipsis,中文意思就是省略号。
type(...)
<class 'ellipsis'>
2 ellipsis在Numpy或者tensor中的应用
以pytorch中的tensor格式为例。先随机生成一个(4,3,4)尺寸的tensor。
import torch
a = torch.randn(4, 3, 4) # 随机生成一个(4,3,4)尺寸的tensor
print(a)
tensor([[[-1.0691, 1.1035, 1.1393, -0.2697],[ 0.7714, -0.8335, -1.3316, 1.6003],[-1.3023, 0.0086, 1.2506, -1.3495]],[[ 1.1887, 1.2299, -2.3907, -0.9398],[ 0.7684, -0.5810, 1.0292, -0.4403],[ 0.0410, -1.3440, 0.6224, 2.3383]],[[ 0.3019, -0.5783, 0.4214, -0.5811],[-1.7942, -0.8230, -0.9545, -0.9520],[ 0.4636, -0.6919, -0.4382, 0.6298]],[[-0.1962, -0.0933, -0.3654, -1.3060],[-0.0212, 0.7255, -2.2106, -0.3655],[ 0.1591, -0.5504, -1.0143, -1.7478]]])
print(a[..., :2])
tensor([[[-1.0691, 1.1035],[ 0.7714, -0.8335],[-1.3023, 0.0086]],[[ 1.1887, 1.2299],[ 0.7684, -0.5810],[ 0.0410, -1.3440]],[[ 0.3019, -0.5783],[-1.7942, -0.8230],[ 0.4636, -0.6919]],[[-0.1962, -0.0933],[-0.0212, 0.7255],[ 0.1591, -0.5504]]])
我们可以发现,a[…, :2]的输出就是前两个维度取所有,第三个维度只取前两列,可以推测出…的作用是代表取逗号前面的所有维度。
假设共n个维度,也就是如果后边有一个逗号分隔,则…是取前n-1个维度的所有。如果没有逗号分隔,则…是取所有维度的元素,也就和这个tensor本身没有任何区别。
结论:
…取的维度 = 所有维度 - 逗号个数
即a[…, :2]= a[:, :, :2]
2.1验证
print((a[...]= a).all())
tensor(True)
print((a[..., :2]= a[:, :, :2]).all())
tensor(True)
python中省略号三个点(...)的作用相关推荐
- python中try语句的用法和作用_python基础知识三——try与except处理异常语句
try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对 ...
- python中修饰器的优点和作用_Python入门基础教程之装饰器
Python装饰器的定义:在代码运行期间在不改变原函数定义的基础上,动态给该函数增加功能的方式称之为装饰器(Decorator) 装饰器的优点和用途: 1. 抽离出大量函数中与函数功能本身无关的的雷同 ...
- python中冒号(:)的作用
python中冒号:的作用 一开始接触python代码的时候冒号这个存在一直困扰了我很久,说一下我对冒号的理解. 冒号(:)表示的就是一个整体,冒号出现在哪里就代表这个位置对整体. 第一:作为整体用于 ...
- python 中 if __name__ == '__main__' 判断的作用
假设这样一个a.py文件 def fun1(): ........ def fun2(): ......... if __name__=='__main__': ......#执行的一些语句 当你执行 ...
- Python中的三引号的用法
python中三引号可以将复杂的字符串进行复制: python三引号允许一个字符串跨多行,字符串中可以包含换行符.制表符以及其他特殊字符. 三引号的语法是一对连续的单引号或者双引号(通常都是成对的用) ...
- python中的os.chdir()定义及作用
其实关于python自带的os以及sys以及管理输入参数的arg这个包,我也不太清楚有什么实际用途,但是肯定用于路径管理,工作空间,模块导入相关.今天这篇文章我们来了解一下python中的os.chd ...
- Python中的三个基本知识点
1. 引言 Python被称为易于使用和灵活多变的编程语言,有很多技巧可以用来使我们编写的代码更漂亮,更简洁.无论您是Python新手还是有多年的编程经验,学习更多的编程技巧往往可以提升工作效率. 闲 ...
- python三引号怎么打出来_请问python中的三引号怎么打啊?小白求助
第一中方法比较简单,直接使用三个反斜杠进行转义,也就是: print("\"\"\"");因为\"代表一个引号,那么连续三个\"自 ...
- python 中右移、左移运算符的作用
python 中">>"与"<<",分别表示右移.左移,右移.左移什么? 请看示例: print("1<<5结果: ...
最新文章
- '_NamespacePath' object has no attribute 'sort'
- 数据库连接池之_DButils
- Android 让系统自动生成缩略图并写入媒体库
- java 散点图_java-Apache POI散点图创建
- 移动设备input输入框点击后自动选中内容_带你用 Python 实现自动化群控(入门篇)...
- CentOS7添加自定义系统服务
- matlab空域内图像增强之灰度变换增强
- MySQL入门学习笔记
- Python学习记录
- 矩阵论代码实践之满秩分解
- [反汇编练习] 160个CrackMe之024
- mac关闭和开启启动声
- Python Network(一)基础入门(节点和边基本概念,网络统计量)
- 区块链改革(链改)全国行动委员会第一次会议胜利召开
- 自动白平衡也即:color constancy (色彩恒常)研究总结
- macM1安装tensorflow和torch教程(python3.8环境)
- Python在金融,数据分析,和人工智能中的应用
- Chart.js使用教程,画折线图实例
- 他是国家的儿子 如不再优秀请原谅他
- 微软计算机电源怎么接,这个长得像电源插头的东西,真的是微软最新研发的迷你电脑?!...