python的random函数_python基础2:随机数生成—random模块、numpy中的random函数

d2aa05e5af23

20200209

前言:继续做adventure项目中,最近常用python和powerbi。转行时学习项目态度是“我只需要把项目过一遍”,心急,导致基础没掌握。转行时觉得sql很简单,但在实际工作中踩很多坑,为了弥补自己sql基础,在2019年也写过很多篇该类文章,当然练习练习最重要,自己掌握不牢固的可以总结下来。

在Python中可以用于随机数生成的有两种主要途径,一是random模块,另一个是numpy库中random函数。

在我们日常使用中,如果是为了得到随机的单个数,多考虑random模块;如果是为了得到随机小数或者整数的矩阵,就多考虑numpy中的random函数,当然numpy也可以的到随机的单个数

目录:

一、random模块

二、numpy库中random函数

一、random模块

random模块中将近有7个函数都是可以用来生成随机数的:

1、random.random():随机生成一个 [0,1) 的浮点数

2、random.uniform(a,b):随机生成一个 [a,b) 的浮点数

3、random.randint(a,b):随机生成一个 [a,b] 的整数

4、random.choice(sequence):从列表,元组,字符串(可用于for循环的数据类型)中随机选择一个元素

5、random.randrange(a,b,step):在生成的<以a为始,每step递增,以b为终>这样的一个整数序列中随机选择一个数

6、random.shuffle(a):打乱一个列表的元素顺序

7、random.sample(self, population, k):从序列population中随机取出k个数;population的类型可以是列表、元组、集合、字符串

1、random模块——random.random()

作用:随机生成一个 [0,1) 的浮点数

import random

random.random()

type(random.random()) #查看数据类型

d2aa05e5af23

random.random()

2、random模块——random.uniform(a,b)

作用:随机生成一个 [a,b) 的浮点数

random.uniform(7,20)

type(random.uniform(7,20)) #查看数据类型

d2aa05e5af23

random.uniform(a,b)

3、random模块——random.randint(a,b)

作用:随机生成一个 [a,b] 的整数

random.randint(99,100)

type(random.randint(99,100))

d2aa05e5af23

random.randint(a,b)

4、random模块—— random.choice(sequence)

作用:从列表,元组,字符串、集合(可用于for循环的数据类型)中随机选择一个元素

random.choice('Bob')

random.choice([3,4,11,30,100])

random.choice(('Michael', 'Bob', 'Tracy'))

d2aa05e5af23

random.choice(sequence)

5、random模块—— random.randrange(a,b,step)

作用:在生成的<以a为始,每step递增,以b为终>这样的一个整数序列中随机选择一个数

random.randrange(2,12,3)

d2aa05e5af23

random.randrange(a,b,step)

d2aa05e5af23

random.randrange(a,b,step)

6、random模块——random.shuffle(a)

作用:打乱一个列表的元素顺序

a = ['Michael', 'Bob', 'Tracy']

random.shuffle(a)

print(a)

d2aa05e5af23

random.shuffle(a)

7、random模块——random.sample(self, population, k)

从序列population中随机取出k个数;population的类型可以是列表、元组、集合、字符串;

a = ['Michael', 'Bob', 'Tracy','xiaoming','age','school']

print(random.sample(a, 2))

d2aa05e5af23

random.sample(self, population, k)

二、numpy中的random函数

在Numpy库中,常用使用np.random.rand()、np.random.randn()和np.random.randint()随机函数。

1、np.random.randn()函数:返回一个或一组服从标准正态分布的随机样本值

2、np.random.rand()函数

3、numpy.random.randint()

4、np.random.random([size])

5、np.random.choice(a,[ size, replace, p])

1、numpy中的random函数——np.random.randn()函数

作用:返回一个或一组服从标准正态分布的随机样本值

print('=============当函数括号内没有参数时,则返回一个浮点数==================')

print(np.random.randn())

print(np.random.randn())

print(np.random.randn())

print('=============当函数括号内有1个参数时,则返回秩为1的数组,不能表示向量和矩阵==================')

print(np.random.randn(4))

print(np.random.randn(2))

print(np.random.randn(3))

print('==========当函数括号内有两个及以上参数时,则返回对应维度的数组=====================')

print(np.random.randn(4,3))

d2aa05e5af23

np.random.randn()

备注:标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)。对应的正态分布曲线如下所示,即

d2aa05e5af23

image.png

2、numpy中的random函数——np.random.rand()函数

作用:使用方法与np.random.randn()函数相同 ,通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1

print('=============当函数括号内没有参数时,则返回一个[0,1)浮点数==================')

print(np.random.rand())

print(np.random.rand())

print('=============当函数括号内有1个参数时,则返回秩为1的数组,不能表示向量和矩阵==================')

print(np.random.randn(5))

print(np.random.randn(3))

print('==========当函数括号内有两个及以上参数时,则返回对应维度的数组=====================')

print(np.random.randn(3,3))

d2aa05e5af23

np.random.rand()

3、numpy中的random函数——numpy.random.randint()

numpy.random.randint(low, high=None, size=None, dtype='l')

输入:

low—–为最小值

high—-为最大值

size—–为数组维度大小

dtype—为数据类型,默认的数据类型是np.int。

作用: 返回随机整数或整型数组,范围区间为[low,high),包含low,不包含high; high没有填写时,默认生成随机数的范围是[0,low

print("=============当没有sizec参数时,则返回一个整数==================")

print(np.random.randint(1,5))

print(np.random.randint(5))

a = np.random.randint(5)

print(type(a))

print("=============当有sizec参数为两个及以上参数时,则返回对应维度的数组==================")

print(np.random.randint(3,size =[3,6])) #返回[0,3)之间的,3行6列数组

print('--------')

print(np.random.randint(1,10,size =[2,7])) #返回[1,10)之间的,2行7列数组

print("=============当有sizec为1个参数时,则返回秩为1的数组==================")

print(np.random.randint(10,size =[8])) #返回[0,10)之间的,秩为1的数组

d2aa05e5af23

numpy.random.randint()

4、numpy中的random函数——np.random.random([size])

np.random.random([size])

作用:生成[0,1)之间的浮点数,与np.random.rand()功能类似

print('=============当函数括号内没有参数时,则返回一个[0,1)浮点数==================')

print(np.random.random())

print(np.random.random())

print('=============当函数括号内有1个参数时,则返回秩为1的数组,不能表示向量和矩阵==================')

print(np.random.random(5))

print(np.random.random(3))

print('==========当函数括号内有两个及以上参数时,则返回对应维度的数组=====================')

print(np.random.random(size = [2,4]))

d2aa05e5af23

np.random.random([size])

5、numpy中的random函数——np.random.choice(a,[ size, replace, p])

np.random.choice(a,[ size, replace, p])

从给定的一维数组中生成随机数

参数: a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率;repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据

a为整数时,对应的一维数组为np.arange(a)

print(np.random.choice(5,3)) #从数组np.arange(5)中选择,返回秩为1的数组

print(np.arange(5))

print('===========给数组中每个数据出现的概率赋值==========')

print(np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]))

print(np.random.choice(5, 5, p=[0, 0, 0.4, 0.6, 0]))

print('==========从数组np.arange(5)中选择,生成一个3行3列的数组========')

print(np.random.choice(5,size=(2,6))) #从数组np.arange(5)中选择,生成一个3行3列的数组

print('==========也可以传入非数字、字符串的数组===========')

demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']

print(np.random.choice(demo_list,size=(3,3)))

d2aa05e5af23

np.random.random([size])

关于numpy中的random函数先总结到这,大家可以参考文章numpy之random库简单的随机数据生成,这篇文章用到的函数更多,里面介绍了6种,这里总结了5种我们常用的方法。

终于写完了,我以为它很简单的………………预计1小时,结果写了2.5小时

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值