赞
踩
# lambda表达式格式: lambda 参数列表:函数体 add_lambda = lambda x, y : x + y #三元表达式 print(1 if True else 2) # 1 print(1 if False else 2) # 2 #map函数 list1 = [1,2,3,4,5] r = map(lambda x : 2 * x, list1) # r = [2,4,5,6,8,10] r = map(lambda x, y : x + y, [1,2,3],[2,4,6]) #filter 过滤器 def is_not_none(s): return s and len(s.strip()) > 0 list2 = [' ','', None, 'hello'] result = filter( ,list2) # ['hello'] #reduce 函数 from functools import reduce f = lambda x, y : x + y r = reduce(f,[1,2,3,4,5],10) # 25 初始化为10 #列表推导式(根据已有的列表推导出新的列表) list1 = [1,2,3,4,5,6] f = map(lambda x: x + x,list1) list2 = [i + i for i in list1] list3 = [i ** 3 for i in list1] # 有选择性的筛选 list4 = [i*i for i in list1 if i > 3 ] #集合推导式{} #字典推导式 s = { "zhangsan":20, "lisi":15 } # 拿出所有的key,并变成列表 s_key = [key for key,value in s.items()] # key 和value颠倒 s1 = {value :key for key, value in s.items()} #只拿出符合条件的值 s2 = {key:value for key,value in s.items() if key == "zhangsan"} # 闭包 :一个返回值是函数的函数 import time def runtime(): def now_time(): print(time.time()) return now_time f = runtime() # 读出一个文件中带有某些关键字的行 def make_filter(keep): def the_filter(file_name): file = open(file_name): lines = line.readlines() file.close() filter_doc = [i for i in lines if keep in i] return filter_doc return the_filter filter1 = make_filter("8") filter_result = filter1("data.csv") print(filter_result) #装饰器、语法糖、注解 #获取函数运行的时间 import time def runtime(func) def get_time(): print(time.time()) func() return get_time @runtime def student_run(): print("学生跑") func() student_run() # 如果函数有参数 # 有不定长参数的装饰器 def runtime(func) def get_time(*args): print(time.time()) func(*args) return get_time @runtime def student_run(i): print("学生跑") func() student_run(1) # 有不定长参数的装饰器 def runtime(func) def get_time(**args): print(time.time()) func(**args) return get_time @runtime def student_run(i,j): print("学生跑") func(1) student_run() # 有不定长参数的装饰器 def runtime(func) def get_time(*args): print(time.time()) func(*args) return get_time @runtime def student_run(i): print("学生跑") func() student_run(1) # 有不定长+有提示(关键字)参数的装饰器 def runtime(func) def get_time(*arg,**args): print(time.time()) func(*arg,**args) return get_time @runtime def student_run(i,j): print("学生跑") func(1) student_run()
# numpy : series dataframe import numpy as np data = [1,2,3,4,5] n = np.array(data * 10) print(data) print(n) #每一个np数组都有一个shape和一个dtype n.shape # shape属性表示获取到np数组的维度 n.dtype # dtype属性表示获取数组的类型 #嵌套系列 : 由一组等长列组成的列表 arr = [[1,2,3,4],[1,2,3,4]] arr2 = np.array(arr) print(arr2.ndim) #ndim 代表维度 #np对数据类型的一个判断 arr = [['1','2',3],[2,3,4]] arr2 = np.array(arr) # arr2 内容全部转成了字符串,当成员中有一个为float,则全部都会是float #numpy进行指定长度数组的创建 np.zeros(10) np.ones((2,3)) np.empty((2,3,4)) np.arange(10) #arange是range函数的数组版本 # int类型 8 16 32 64 # float 16 32 64 128 #矢量化 #数组通常不用在编写循环的情况下就可以进行批量运算 # arr1 + arr2 # arr1 - arr2 # arr1 * 5 #numpy 数组的索引和切片操作 arr[1] arr[4:] arr[0:4] = 11 arr.copy() #复制一份 # 二维numpy中 arr[1][2] 等价于 arr[1,2] arr == '1' # 获取增加数组 arr[[4,3,0,8]] #以一个特定的顺序来选取行中的子集,我们传入一个用于指定顺序的整数列表或数组 arr[[4,3,0,8],[0,1,2,1]] # 获取4,3,0,8行的某一个索引值 # 在选完1,5,7,2行的数据后,我们进行列上的一个选择 arr[[1,5,7,2]][:,[0,3,1,2]] arr[np.ix_([1,5,7,2],[0,3,1,2])] # 数组转置 和 轴对换 arr.transpose()
self.model.eval()
with torch.no_grad(): # 防止跟踪
action = self.model(state)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。