python学习
塔塔的守护者
珍惜——!
展开
-
三种推导式:list,dict,set
1.列表推导式:规范式:variable = [out_exp for out_exp in input_list if out_exp == 2]multiples = [i for i in range(30) if i % 3 is 0]print(multiples)2.字典推导式:mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}mcase_frequency = {k.lower(): mcase.get(k.lower(), 0)原创 2020-09-05 20:29:47 · 116 阅读 · 0 评论 -
collections工具库中的一些容器
1.defaultdict#defaultdict解决使用dict最常见的问题,就是key为空的情况#方法1:在每次get之前写一个if判断if key in dict: return dict[key]else: return Nonedata = [(1, 3), (2, 1), (1, 4), (2, 5), (3, 7)]d = {}for k, v in data: if k in d: d[k].append(v) else:转载 2020-09-05 09:43:00 · 80 阅读 · 0 评论 -
python基础
注:object是所有类的基类,python中一切皆对象,类也是对象1.取商和余数divmod(10,3)#输出(3,1)2.次幂pow(3,2,4)#输出13.任意对象转为字符串str()4.计算字符串的表达式eval(s)5.对可迭代对象排序a = [{'name':'xiaoming','age':18,'gender':'male'},{'name':'xiaohong','age':20,'gender':'female'}]sorted(a,key=lamb.原创 2020-08-17 21:57:15 · 470 阅读 · 0 评论 -
python的几种设计模式
1.单例模式#第一种,重写__new__方法class Singleton(object): _instance = None def __new__(cls,*args,**kwargs): if cls._instance is None: cls._instance = object.__new__(cls,*args,**kwargs) return cls._instance if __name__原创 2020-08-13 10:46:44 · 771 阅读 · 0 评论 -
python的常用魔术方法、类方法、静态方法
1.当定义一个类时,在内存中会开辟出一块空间。当用类创建一个对象时,同样也会在内存中开辟出一块空间:分为三步:(1)先找内存中有没有一块空间是某类的(2)通过系统的object.__new__方法,向内存申请一块与该类一样的空间,并将该地址传给__init__中的self(3)再去该类的空间中找有没有__init__,如果没有则执行将开辟出的空间给对象名;如果有__init__,则会进入init方法执行里面的内容,然后将开辟出的空间给对象名。__init__中的属性会动态的被添加到该原创 2020-08-09 16:11:48 · 202 阅读 · 0 评论 -
python之协程
1.进程:类Process ;线程:类Thread ;协程:没有定义好的类,只能自己通过定义生成器完成。原创 2020-08-07 14:53:14 · 171 阅读 · 0 评论 -
python之多线程
1.一个进程中可以有多个线程,进程是指在内存中开辟出一块空间,线程主要做一些耗时操作。一个进程中的多个线程共享该进程的资源是指cpu调用该进程中的某一个线程,然后该线程可以用该进程的资源,并不是多个线程同时用该进程的资源。2.线程:Threading(1)状态:新建对象—start—就绪——cpu调用运行——结束,当sleep时,该线程从cpu中退出,此时称为阻塞状态,当sleep时间结束时,该线程回到就绪状态,等待cpu的调用执行。(2)线程是可以共享全局变量的(3)GIL 全局解释器锁原创 2020-08-07 11:18:16 · 183 阅读 · 0 评论 -
python之多进程
1.多进程对于全局变量访问,在每一个全局变量里面都放一个m变量,保证每个进程访问变量互不干扰。2.进程池:阻塞式:当一个任务被执行时,在进程池中开辟出一个进程,当该任务结束时,下一个任务才能被执行,然后在进程池中开辟出一个新的进程,原先执行完任务1的进程闲置,...在进程池中最多开辟n个进程。阻塞式无法用队列,没有回调函数。非阻塞式:进程池里开辟n个进程,将所有任务依次放在一个队列里,首先将前n个任务一起放到进程池中,每个任务由一个进程负责执行,每个进程都有自己的id,当一个任务执行结束时,它所用的原创 2020-08-06 21:16:36 · 253 阅读 · 0 评论 -
python之装饰器
一、闭包:1.条件:(1)外部函数中定义了内部函数(2)外部函数是有返回值(3)返回的值是:内部函数名(4)内部函数引用了外部函数的变量格式:def 外部函数(): ...... def 内部函数(): ...... return 内部函数2.闭包的作用:(1)保存返回闭包时的状态(外层函数变量)(2)由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存。(3)闭包内部函数可以同级访问3.闭包原创 2020-08-06 16:17:31 · 110 阅读 · 0 评论 -
关于函数return返回值的一些小总结
直接用例子说会更好理解:def add(a,b): c = a + b return c1.对于上述这个函数(方法),一般设置与返回值个数相等的变量指向它,如下表示:c = add(3,4)print(c)输出:72.不设置变量指向该函数,直接打印输出,如下表示:print(add(3,4))输出:73.如果函数没有返回值,则输出None:def add(a,b): c = a + b print(add(3,4))输出:N原创 2020-07-09 21:46:15 · 768 阅读 · 0 评论 -
python中for、while与else搭配使用
1.在Python中,for....else 表示:for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行,while....else 也是一样。li = [2,4,6,13,10,12]for data in li: if not i%2: print(data) else: breakelse: print("我爱你")输出:li = [2,4,6,13,10,1原创 2020-07-06 18:38:18 · 3175 阅读 · 0 评论 -
用python做一个缩放自如的鸣人
首先,我要非常感谢微信公众号"菜鸟学Python"的作者,是他分享了用python做一个缩放自如的圣诞老人的想法及程序。我按照作者分享的程序整理了一下,做了一个缩放自如的鸣人,这是我的源码,还请大家批评指正。import osimport cv2import numpy as npimport imageiopic_path = 'C:/Users/ch/Desktop/luo...原创 2020-01-03 11:23:19 · 3156 阅读 · 0 评论 -
numpy中expand_dims()函数详解
注:本文只是本人的通俗理解,有些专业概念表达不是很清楚,但我相信你读完可以理解该函数并会使用。expand_dims(a, axis)中,a为numpy数组,axis为需添加维度的轴,a.shape将在该轴显示为1,通过索引调用a中元素时,该轴对应的索引一直为0。废话少说,实操为证:本人使用jupyter notebook软件编程1.一维数组:即向量如上图所示,axis=0对应...原创 2019-12-26 11:23:41 · 28452 阅读 · 6 评论 -
张量切片以及*args和**kwargs学习
1.张量切片import numpy as npa=np.ones((3,4,5))a.shape Out[1]:(3, 4, 5)#sliceb=a[2,2:4,2:5]b.shape Out[2]:(2, 3)2.python numpy里面的axis:通过不同的axis,numpy会沿着不同的方向进行操作:如果axis=0,则沿着纵轴进行操作;axis=1,...原创 2019-10-31 18:59:00 · 166 阅读 · 0 评论 -
tensorflow中协调器 tf.train.Coordinator和入队线程启动器
TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行。在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止的时候, 队列必须能被正确地关闭。TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。Co...转载 2019-05-15 11:10:09 · 210 阅读 · 0 评论 -
top-1 error 和 top-5 error的解释
转载自https://blog.csdn.net/FJY_sunshine/article/details/82734396ImageNet 图像分类大赛评价标准采用 top-5 错误率,或者top-1错误率,即对一张图像预测5个类别,只要有一个和人工标注类别相同就算对,否则算错。Top-1 = (正确标记 与 模型输出的最佳标记不同的样本数)/ 总样本数;Top-5 = (正确标记 不...转载 2019-04-13 20:43:24 · 7159 阅读 · 0 评论 -
os.listdir() 、tf.nn.top_k()、tf.nn.in_top_k()、tf.argmax()、tf.equal()、tf.reduce_mean()函数学习
1.os.listdir()用于返回指定的文件夹包含的文件或文件夹的名字的列表,它不包括 '.' 和'..' 即使它在文件夹中。import os# 打开文件path = "C:/Users/ch/Desktop/my/log/"dirs = os.listdir(path)# 输出所有文件和文件夹for file in dirs: print(file)结果...转载 2019-05-15 09:35:09 · 293 阅读 · 0 评论 -
python中lambda()、sorted()、re.sub()函数学习
1.lambda [arg1 [, agr2,.....argn]] : expression#例1a = lambda x: x ** 2print(a(3))b = lambda x, y, z: (x + y) ** zprint(b(1, 2, 2))结果:99进程已结束,退出代码0lambda表达式会返回一个函数对象,如果没有变量接受这个返回值的话,它...原创 2019-05-14 20:59:32 · 1029 阅读 · 0 评论 -
python中squeeze()和split()函数学习
1.numpy.squeeze(a,axis = None)从数组的形状中删除单维度条目,即把shape中为1的维度去掉#例1import numpy as npa = np.arange(10).reshape(1,10)print(a)print(a.shape)b = np.squeeze(a)print(b)print(b.shape)结果:[[0 ...原创 2019-05-14 16:14:25 · 1844 阅读 · 0 评论