###隐函数lanbda及map函数的应用实例 ''' lambda 参数1,参数2,参数3,...:表达式 ''' f = lambda x,y :x+y print(f(1,2)) ###输出3 ''' map()接收一个函数f 和 一个Iterator(可迭代对象),并通过把函数f依次作用在Iterator的每一个元素上,并把结果做为新的Iterator返回 ''' a = [1,2,3] b = map(lambda x:x*x ,a) print(list(b)) ###输出[1,4,9] ##map 函数处理字典 c = { 'x':np.array([1,2,3]), 'y':[4,5,6] } ##调用字典的key d = map(lambda data:data*2,c) print(list(d)) ##['xx', 'yy'] ##调用字典的values e = map(lambda data:data*2,c.values()) print(list(e)) ##[array([2, 4, 6]), [4, 5, 6, 4, 5, 6]] ##注意:列表*2重复一次,数组*2元素数字*2 def double(x): return x*2 print(list(map(double,c))) ## ['xx', 'yy'] print(list(map(double,c.values()))) ##[array([2, 4, 6]), [4, 5, 6, 4, 5, 6]]
import tensorflow as tf import numpy as np ##定义两个数组 x = np.arange(6) y = np.arange(3,9) ##创建dataset数据集 dataset = tf.data.Dataset.from_tensor_slices({ 'x':x, 'y':y }) c = tf.data.Dataset.range(1,7) def getone(dataset): iterator = dataset.make_one_shot_iterator() #生成一个迭代器 one_element = iterator.get_next() #迭代器取值 return one_element one_element1 = getone(dataset) one_element2 = getone(c) #定义一个会话内调用的函数 def sess_get_one(one_element): for i in range(6): datav = sess.run(one_element) print(datav) #开启会话,调取数据 with tf.Session() as sess: sess_get_one(one_element1) sess_get_one(one_element2) ''' {'x': 0, 'y': 3} {'x': 1, 'y': 4} {'x': 2, 'y': 5} {'x': 3, 'y': 6} {'x': 4, 'y': 7} {'x': 5, 'y': 8} 1 2 3 4 5 6 '''
import tensorflow as tf import numpy as np ##定义两个数组 x = np.arange(6) y = np.arange(3,9) ##创建dataset数据集 dataset = tf.data.Dataset.from_tensor_slices({ 'x':x, 'y':y }) dataset1 = dataset.map(lambda data:(data['x']*2,tf.cast(data['y'],tf.float32))) c = tf.data.Dataset.range(1,7) def getone(dataset): iterator = dataset.make_one_shot_iterator() #生成一个迭代器 one_element = iterator.get_next() #迭代器取值 return one_element one_element1 = getone(dataset) one_element2 = getone(c) one_element3 = getone(dataset1) #定义一个会话内调用的函数 def sess_get_one(one_element): for i in range(6): datav = sess.run(one_element) print(datav) #开启会话,调取数据 with tf.Session() as sess: sess_get_one(one_element1) sess_get_one(one_element2) sess_get_one(one_element3) ''' {'x': 0, 'y': 3} {'x': 1, 'y': 4} {'x': 2, 'y': 5} {'x': 3, 'y': 6} {'x': 4, 'y': 7} {'x': 5, 'y': 8} 字典类型的dataset数据集,每取一个值都带着key 1 2 3 4 5 6 (0, 3.0) (2, 4.0) (4, 5.0) (6, 6.0) (8, 7.0) (10, 8.0) 相当于数据变成了:{(0, 3.0),(2, 4.0),(4, 5.0),(6, 6.0),(8, 7.0),(10, 8.0)} '''