随机数
函数名称 | 函数功能 | 参数说明 |
---|---|---|
rand(d0, d1, …, dn) | 产生均匀分布的随机数 | dn为第n维数据的维度 |
randn(d0, d1, …, dn) | 产生标准正态分布随机数 | dn为第n维数据的维度 |
randint(low[, high, size, dtype]) | 产生随机整数 | low:最小值;high:最大值;size:数据个数 |
random_sample([size]) | 在[0,1)内产生随机数 | size:随机数的shape,可以为元祖或者列表,[2,3]表示2维随机数,维度为(2,3) |
random([size]) | 同random_sample([size]) | 同random_sample([size]) |
ranf([size]) | 同random_sample([size]) | 同random_sample([size]) |
sample([size])) | 同random_sample([size]) | 同random_sample([size]) |
choice(a[, size, replace, p]) | 从a中随机选择指定数据 | a:1维数组 size:返回数据形状 |
bytes(length) | 返回随机位 | length:位的长度 |
生成器
生成器是这样一个函数,它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。
生成器不仅“记住”了它数据状态;生成器还“记住”了它在流控制构造(在命令式编程中,这种构造不只是数据值)中的位置。
生成器的特点:
生成器是一个函数,而且函数的参数都会保留。
迭代到下一次的调用时,所使用的参数都是第一次所保留下的,即是说,在整个所有函数调用的参数都是第一次所调用时保留的,而不是新创建的
生成器表达式示例:
defindex_words(text):
result=[]
if text:
result.append(0)
for index,letter in enumerate(text,1):
if letter == ' ':
result.append(index)
return result
result=index_words("I am rong")
for a in result:
print(a)
使用生成器的情况:
defindex_words(text):
if text:
yield 0;
for index,letter in enumerate(text,1):
if letter==' ':
yield index,letter
result=index_words('I am rong')
for a in result:
print(a)
def get_province_population(filename):
withopen(filename) as f:
for line in f:
yield int(line)
gen = get_province_population('data.txt')
all_population =sum(gen)
for population in gen:
printpopulation / all_population #错误
迭代器
print i
for line in f: #for循环使用迭代器协议访问文件
print(line)