未完……
在认知上不断更新自己是件让人很愉悦的事情!!!MOMO:python & tensorflow & keras 总结(一)zhuanlan.zhihu.comMOMO:python & tensorflow & keras 总结(二)zhuanlan.zhihu.comMOMO:python & tensorflow & keras 总结(三)zhuanlan.zhihu.com
113、TimeTuple
许多Python时间函数将时间处理为9个数字的元组,如下图所示:
112、获取当前时间
import time
print (time.localtime())
结果:time.struct_time(tm_year=2018, tm_mon=5, tm_mday=22, tm_hour=10, tm_min=6, tm_sec=39, tm_wday=1, tm_yday=142, tm_isdst=0)
curtime = time.strftime("%Y-%m-%d%H:%M:%S", time.localtime())
结果:2018-05-22 10:15:55
localtime = time.asctime( time.localtime(time.time()) )
print ("Local current time :", localtime)
结果:Local current time : Tue May 22 10:19:23 2018
111、计算程序执行时间
方法1:
import time
import datetime
starttime = datetime.datetime.now()
time.sleep(5)
endtime = datetime.datetime.now()
print ((endtime - starttime).seconds )
结果:5
方法2:
import time
start = time.clock()
time.sleep(5)
end = time.clock()
ti = end - start
print('Running time:%sSeconds' % ti)
结果:Running time: 5.000159572924827 Seconds
方法3:
import time
start = time.time()
time.sleep(5)
end = time.time()
ti = end - start
print('Running time:%sSeconds' % ti)
结果:Running time: 5.000159572924827 Seconds
110、datetime模块
应用1:计算时间差
import datetime
t=(datetime.datetime(2019,5,20,13,1,4)-datetime.datetime.now()).total_seconds()
print("t=",t)
结果:t= 31375634.539111
应用2:计算10天后的日期
import datetime
d1 = datetime.datetime.now() --> 2018-05-22 09:38:03.609586
d2 = d1 + datetime.timedelta(days =10) --> 2018-06-01 09:38:03.609586
d3=d2.ctime() --> 'Fri Jun 1 09:38:03 2018'
109、calendar模块
打印某个月的日历:
import calendar
cal = calendar.month(2018,5)
print(cal)
结果:
May 2018
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
108、zip()与for循环
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)
结果1:[(1, 4), (2, 5), (3, 6)]
zip(a,c)
结果2:[(1, 4), (2, 5), (3, 6)] # 元素个数与最短的列表一致.
zip(*zipped)
结果3:[(1, 2, 3), (4, 5, 6)] # 与zip相反,可理解为解压,返回二维矩阵式.
A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
A1 = range(10)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = {i:i*i for i in A1}
A6 = [[i,i*i] for i in A1]
输出:
A0 = {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}
A1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
A2 = []
A3 =[1, 2, 3, 4, 5]
A4 = [1, 2, 3, 4, 5]
A5 = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
A6 = [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
107、管理不同版本的代码没有版本控制的代码,就像没有杯子的咖啡。有时候我们需要写一些一次性的、可以随手扔掉的脚本,这种情况下不作版本控制没关系。但是如果你面对的是大量的代码,使用版本控制系统是有利的。版本控制能够帮你追踪谁对代码库做了什么操作;发现新引入了什么bug;管理你的软件的不同版本和发行版;在团队成员中分享源代码;部署及其他自动化处理。它能让你回滚到出现问题之前的版本,单凭这点就特别棒了。我偏向于使用Git作为版本控制系统(VCS),但还有其他的选择,比如subversion(SVN)。
106、Python库
105、查看函数源码
按住Ctrl,用鼠标点击函数,pycharm会自动打开你所选的函数的源码。
104、scikit-learn与机器学习
103、python装饰器
一般而言,想额外拓展原来函数功能,直接的办法就是进入代码里面修改。python装饰器的作用就是拓展原函数的功能,但它的特殊之处在于不用更改原函数的代码前提下给函数增加新的功能。装饰器是程序开发中经常会用到的一个功能,用好了装饰器,可增加开发效率。
使用装饰器之前:
# 加法函数
def add(a,b):
res=a+b
return res
# 减法函数
def minus(a,b):
res=a-b
return res
# 加法函数增加计算耗时的功能:
import time
def add(a,b):
t1=time.time()
res=a+b
t2=time.time()
cost_time=t2-t1
print(cost_time)
return res
# 减法函数增加计算耗时的功能:
import time
def minus(a,b):
t1=time.time()
res=a-b
t2=time.time()
cost_time=t2-t1
print(cost_time)
return res
使用装饰器之后:
# 定义装饰器
import time
def c_time(func)
def wrapper(*args,**kargs):
t1=time.time()
f=func(*args,**kargs)
t2=time.time()
cost_time=t2-t1
return f
return wrapper
# 使用装饰器
@c_time
def add(a,b)
return a+b
@c_time
def minus(a,b):
return a-b
102、维度获取
取ndarray的行数m和列数n:
m, n = shape(data_arr)
取list的维度L:
L=len(Y)
101、创建,删除,更改目录
所有文件都包含在各种目录中,Python处理目录问题也很容易。
os模块有几种方法可以用来创建,删除和更改目录。
在当前目录中创建一个目录test:
os.mkdir("test")
进入“/home/newdir”目录:
os.chdir("/home/newdir")
显示当前工作目录:
os.getcwd()
删除“/tmp/test”目录,需要给出目录的完全限定名称,否则将在当前目录中搜索该目录:
os.rmdir( "/tmp/test" )
相关资料: