Python类和包的介绍
一:
## argparse:
参考:https://blog.csdn.net/yy_diego/article/details/82851661?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
argparse是处理命令行操作参数。先创建一个对象;再向对象中参加参数,每个参数有对应的名字和默认值; 最后利用该对象的名字可以进行调用该参数值;
二:
## yaml文件:
参考:https://cloud.tencent.com/developer/article/1569879
yaml是一种直观的能够被电脑识别的的数据序列化格式;首先打开该yaml文件,f = open(’.yaml’);再生成该yaml对象 yaml.load(f); 最后我们可以输出该对象的所有数据内容(输出的数据是一个字典)
我们也可以用yaml.dump(传入字典数据),将该字典变成yaml数据
三:
pkl文件:
pkl文件和yaml文件都是用来存储数据的,目的都是为了将文件转换为字典然后进行调用数据; 先打开该文件,然后创建该文件的对象将该文件转换为字典 ;然后用dict.get(key,无key的默认值)方法来获取该键对应的内容。
四:
numpy函数:
1 、np.astype(np.long):
解析: 是用来强制性更改数据类型的;
2、np.concatenate(np1, np2 , axis =0/1) :
解析:是用来连接两个numpy的函数;若axis = 1,则对两个数组的行进行连接;若axis=0 ,则对两个数组的列进行连接
3、np.linalg.norm(x , ord , axis):
解析:用来求矩阵numpy x的范数的; ord =2 ,则求第二范数;axis =0 ,则代表对每个行向量求范数,axis =1,则代表对每个列向量求范数
4、numpy.flatten():
解析:将numpy变成一维的;
5、np.array([ 2, 3] , [4 , 5] ) ,生成一个二维数组 ;
6、np.random.rand(3 ,2)生成一个3x2列的随机numpy
7、np.shape 查看维度 ; np . reshape(-1 , 1)是调整维度,-1是自动调整,1代表有1列
8、查看list维度的方法:
现将其转变成numpy,然后在查看其维度
np.array(list).shape;
9:numpy.T : 将numpy的行列倒置;
10:numpy.zero_like(a) :产生一个和a维度一样大小的全0numpy
11:numpy.repeat(np_a , time , axis)
解析:将np_a进行复制time次数,若axis=none ,则按照从行到列复制每个元素,然后在展平该数组 ; 若axis=0;则按照列的顺序,将每个元素复制time次数; 若axis=1,则按照行的顺序,将每个元素复制time次 ;
numpy.round(float , x) ; 返回float的保留两位的四舍五入值 ;
numpy.clip(x , min ,max)#将Numpy x的值控制在min-max之间 ;小于min的值固定在min ;大于Max的值固定在max 中 ;
五:
getattr( )
getattr(obj , 该对象的属性名),作用是获得该对象的属性值;
六:
pth文件
1:pth文件是用来存储模型的;接下来我们讲解如何获取该模型;
2:直接加载 .pth文件得到模型: model = torch.load(‘文件名’)
3:此时该model就是一个字典,共含有4个键值 对,model,optimizer,scheduler,iteration; 其中每个键对应的值依然可能是字典;可能会有多层的字典叠加;
4:详情参考:https://zhuanlan.zhihu.com/p/84797438
5:注意Ubuntu要把内核更新关上,否则一旦进行自动更新,NVIDIA驱动程序和内核的兼容性就会发生错误;此时NVIDIA就会错误。
七:
state_dict():
1 : model.state_dict(): 返回的是该模型的字典;字典的key是模型参数名,字典的value是模型参数名对应的参数值;
2:model.load_stat_dict(mode_dict) : 将该字典的参数复制到model中;这是更改模型参数名对应的参数值时的必须操作;
八:
torch.backends.cudnn.benchmark = true 代表gpu运行时自动为网络提速;
九:
cv.imread(.png)
1: 读取图片,将图片数据变成tensor,读取后的数据是[h , w, channel ];注意区分transform.Totensor(PIL),将PIL类型的图片变成tensor ; 此时维度是[channel , h , w ]
2:cv2.imshow(tensor),是显示该图片;
十:
cv.resize()
进行缩放图片; img = cv.resize(img_resize , 缩放的大小 , interplation缩放的方式)
十一:
for _ in zip(numpy_a numpy_b)
这是实现并行遍历的 ;
十二:
matplotlib.pyplot as plt 的运用
1 : plt . figure(num=None, figsize=None)
解析:num是图片的编号或者名称 ; figsize(x , y)是定义输出图片的大小 ;
2:plt.imshow( x)
解析:imshow方法首先将二维数组的值标准化为0到1之间的值,然后根据指定的渐变色依次赋予每个单元格对应的颜色,就形成了热图;热图是并不显示的,只有调用plt.show()才会显示 ; 其中参数x的维度可以是一维的数组,也可以是三维的数组;
3:fig , axes = plt.subplots(2 ,3 )
解析: 创建一个23维的窗口 ;然后在这些子窗口中插入图片;
4:ax1 = plt. add_subplot(2,3,1)
解析:向23维的窗口中的第一个格子添加图片;其中ax1也可以代表这个图片;即ax1可以单独加进网格中
5:plt.subplots_adjust(left , right , top , botomm ,wspace , hspace )
解析:前面调整子图的位置 ; wspace是子图宽之间的距离, hspace 是子图高之间的距离;
6:plt.plot(x , y ):
解析:生成坐标点,其中x和y是两个列表;从而生成坐标点!!
7:plt.axis(‘off’):
解析:axis是关于坐标系的配置问题;在显示的图片上不显示坐标系;若用plt.axis([0 ,10 , 1 ,15])则是定义x轴的坐标系是0-10 , y轴的坐标系是1- 15。
8:plt.savefig(path):
解析:保存图片到指定的文件下
十三:
lambda函数
lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。
pl:
a = lambda x , y ,z :x+y+z, 则print(a(2,3,4))的值就是9
十四:
list列表的详细说明
首先a 的维度是[3 , 100]
1、list a[0 , x::y]
解析:这是代表在第0行从x开始,每隔y进行隔开取数; 代表在第0行开始进行隔空取数;
2、list a [0 , x:y ]
解析:这是代表在第0行, 在x-y范围中进行取数;
3、list a [0 , 3]
解析:这是代表在第0行,取第三个数;
十六:
torch的用法
torch.cat(tensor1,tensor2 , dim)
解析:若dim=1,则按照行进行连接;若dim = 0 ,则按照列进行连接;
numpy.transform(0 ,2 ,1 )是转换维度的意思;
torch.squeeze(0) :删除第一个维度
torch.unsqueeze(0):在第一个维度前插入一个维度
a = torch.from_numpy(numpy) :
解析:将numpy变成一个tensor,且tensor和numpy共用一个内存空间,改变其中一个数据会改变其他的数据;
isinstance(obj1 , obj2) 是用来判断两个对象的type是否相同的;
十七:
Cv2.addWeighted()
解析:图像融合与叠加方法 ; 将两个图片按照一定的权重进行叠加和融合;参数为cv2.addWeighted(img1 , w1 , img2 , w2 )
cv.add(img1 , img2) ; 将两个图片numpy直接进行相加;
cv2.circle(img , (元组表示圆心) , 半径 , 颜色):
用来画圆圈的 ;
cv2.line(img , top_left , right_left , color , size ):是在img图上画直线的 ;
十八:
.npy文件
npy文件就是存储numpy的文件 ;
用np.save(“path” , arr)来保存numpy
用np.load(arr)来获得该numpy
十九:
.mat文件
.mat,yaml , pkl文件都是用来存储数据的; 目的也是将其变成字典;然后利用方法进行调用 ;
用scipy包来读取.mat文件,获得的是一个字典 ;即
dict = scipy.loadmat(".mat_pth")
二十:
用Python处理视频时,必须安装imagio-ffmpeg ;不安装时,Python是不可以处理视频数据的 ;pip install imagio-ffmpeg ;
str.split(’ , ‘):按照’,'进行分割字符串,返回的是一个字符串数组 ; [ -1]是代表取该字符串数组的最后一个数据;
https://blog.csdn.net/Anymake_ren/article/details/78753707
from tqdm import tqdm 的用法:
for i in tqdm(是个列表或者是个iterator迭代器) ; 目的就是在迭代的时候生成一个进度条,并显示出来该进度条 ;
二十一:
关于3DMM的说明
对于三维重建问题 , 得到3DMM的参数 和 bfm模型的数据库中的数据时,我们便可以利用公式重建出三维人脸模型了 ;
关于人脸盒子的说明:人脸盒子就是由四条直线组成的一个方圈,我们可以用
cv2.line(img , tuple(x , y ) , tuple(x , y))来画出直线,其中tuple是直线两个定点的坐标 ;
关于plt.imshow(numpy_image)的说明:生成一个热图,方便在该图上添加东西,但并不显示该图,需要调用plt.show()才会显示该图;其中x是个二维的Numpy,会自动的为其中的每个数值赋予一个颜色代码,若干个颜色组成了一张照片;
Python类和包的介绍相关推荐
- python地理处理包——Shapely介绍及用户手册
本文主要是基于shapely官方文档翻译而成 shapely主要是在笛卡尔平面对几何对象进行操作和分析. 性能 Shapely中所有的操作都是使用GEOS库.GEOS是用C++写的,也被用在许多应用程 ...
- Python模块和包的介绍(模块含义、用模块好处、模块分类、包和模块的创建)
- python类中包含一个特殊的变量、它可以访问类的成员_Python 类的特殊成员介绍...
类的成员有两种形式 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法,私有成员命名时,前两个字符是下划线. class Foo: def __init__(self, name, age ...
- anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
Anaconda中python包的介绍与使用方法 目录: 1.包的定义 2.常用包管理器 3.包管理器的使用方法 4.数据科学常用的包 1.包的定义 由多个和同一功能相关的模块组成,通常为含有_ini ...
- Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法
Day09新手小白学python 第九节 Python的类和对象的介绍,定义类和对象,定义实例方法和属性以及Python中的魔法方法 目录 Day09新手小白学python 前言 一.面向对象介绍 二 ...
- python扩展包中文介绍:截止2019.12.01
文章目录 python 扩展包基本信息 基本功能介绍 python 扩展包基本信息 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 基本功能介绍 A APSW, ...
- python解包dump,tcpdump抓包及tshark解包方法介绍
tshark是wireshark的命令行工具,经过shell命令抓取.解析报文.tcpdump是Linux系统下的抓包工具.wireshark和tcpdump都共同使用 libpcap做为其底层抓包的 ...
- python 安装PIL包的方法以及简单介绍
引用文章1: python安装PIL包的方法 https://www.cnblogs.com/CarbinHee/p/7780279.html 引用文章2: PIL https://www.liaox ...
- 【python】面向对象类、对象的介绍
类的定义 语法: class 类名():属性方法 类名:是一个标识符,要遵循标识符的命名规范建议首字符大写,如Person如果是由多个单词组成,则建议为驼峰命名法,下划线分隔法 如:PersonTea ...
- Python进阶10-标准库介绍01
摘要:Python标准库介绍 Python的一大好处在于它有一套很有用的标准库(standard library).标准库是随着Python一起安装在你的电脑中的,是Python的一部分 (当然也有特 ...
最新文章
- 【网站汇总】论文相关
- Linux下配置rdate时间服务器
- 移动网站用backbone还是angular?
- php循环读取mysql_PHP无限循环获取MySQL数据
- C++ 解析Json
- Java并发编程实战~Worker Thread模式
- FileBeat + Pipeline 解析日志 保存至ElasticSearch(实战)
- python语句可以采用交互式执行方式_怎么在Python交互式命令行中运行脚本?
- MongoDB 操作
- pytorch nn.LogSoftmax
- Tomcat与JDK版本对应关系
- jave使用corenlp
- STC学习:可振动感应的电子音乐
- 特征点匹配(SIFI)
- plot函数linewidth区别
- 小米10pro搭载鸿蒙,国产手机性能排名:华为全军覆没,小米10Pro垫底,新黑马诞生...
- ffmpeg 之 hls
- 到北京软通动力做项目经理怎么样?
- CMA资质认定和CNAS实验室认可的区别有哪些?
- 什么是Vue,Vue的作用与原理?
热门文章
- Python如何批量把图片地址输入到浏览器上
- 微信公众平台测试号验证Token失败的坑
- 如何修改wamp5的端口号,默认页。
- 关于kali出现乱码问题
- 物联网-云开发(Tlink云、机智云、百度云、阿里云等)
- linux虚拟机对外部sd卡格式化和分区
- 1853: [Scoi2010]幸运数字[容斥原理]
- Android 多种投屏神器(Vysor,Total Control,scrcpy )
- 蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
- bzoj 4453: cys就是要拿英魂!(后缀数组+二分)