精华内容
下载资源
问答
  • 如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文章的介绍。 random.random...
  • 各位可以先看下,不过我没看懂他这么写的目的,好像是统计10000次生成红绿蓝色的情况分别是多少次,代码运行没什么问题,就是有时候会产生随机结果没有选中红绿蓝,这一点可以在最后结果加起来不等于10000看出来。...
  • python生成随机数方法小结

    万次阅读 2016-05-07 19:31:23
    python中用于生成随机数的模块是random,在使用前需要import random.random: random.random():生成一个0-1之间的随机浮点数.例: import random print random.random() # 0.87594424128 random.uniform ...

    在python中用于生成随机数的模块是random,在使用前需要import

    random.random:

    random.random():生成一个0-1之间的随机浮点数.例:

    import random
    print random.random()
    # 0.87594424128

    random.uniform

    random.uniform(a, b):生成[a,b]之间的浮点数.例:
    import random
    print random.uniform(0, 10)
    # 5.27462570463

    random.ranint

    random.randint(a, b):生成[a,b]之间的整数.例:
    import random
    print random.randint(0, 10)
    # 8

    random.randrange

    random.randrange(a, b, step):在指定的集合[a,b)中,以step为基数随机取一个数.如random.randrange(0, 20, 2),相当于从[0,2,4,6,...,18]中随机取一个.例:
    import random
    print random.randrange(0, 20, 2)
    # 14

    random.choice

    random.choice(sequence):从特定序列中随机取一个元素,这里的序列可以是字符串,列表,元组等,例:
    import random
    string = 'nice to meet you'
    tup = ('nice', 'to', 'meet', 'you')
    lst = ['nice', 'to', 'meet', 'you']
    dic = {'a': 1, 'b': 2, 'c': 3}
    print random.choice(string)
    print random.choice(tup)
    print random.choice(lst)
    '''
    c
    meet
    nice
    '''
    

    random.shuffle

    random.shuffle(lst):将列表中的元素打乱,洗牌.例:
    import random
    lst = ['nice', 'to', 'meet', 'you']
    random.shuffle(lst)
    print lst
    # ['you', 'nice', 'to', 'meet']

    random.sample

    random.sample(sequence,k):从指定序列在随机抽取定长序列,原始序列不变,例:
    import random
    string = 'nice to meet you'
    tup = ('nice', 'to', 'meet', 'you')
    lst = ['nice', 'to', 'meet', 'you']
    dic = {'a': 1, 'b': 2, 'c': 3}
    print random.sample(string, 2)
    print random.sample(tup, 2)
    print random.sample(lst, 2)
    '''
    ['m', 'i']
    ['you', 'nice']
    ['nice', 'to']
    '''
    展开全文
  • 今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下。  本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一...
  • 本文实例讲述了Python简单生成随机数方法。分享给大家供大家参考,具体如下: 主要知识点: 随机整数: random.randint(a,b):返回随机整数x,a<=x<=b 包含范围的随机整数 random.randrange(start,stop,[,...
  • python生成随机数的几种方法

    万次阅读 多人点赞 2018-07-13 20:32:27
    今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下。 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间...

    本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为3部分,并附上代码。

     

    1 从给定参数的正态分布中生成随机数

      当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用python中现有的模块和函数来生成随机数了。这里调用了Numpy模块中的random.normal函数,由于逻辑非参简单,所有直接贴上代码如下:

    import numpy as np
    
    
    # 定义从正态分布中获取随机数的函数
    def get_normal_random_number(loc, scale):
    	"""
    	:param loc: 正态分布的均值
    	:param scale: 正态分布的标准差
    	:return:从正态分布中产生的随机数
    	"""
    	# 正态分布中的随机数生成
    	number = np.random.normal(loc=loc, scale=scale)
    	# 返回值
    	return number
    
    
    # 主模块
    if __name__ == "__main__":
    	# 函数调用
    	n = get_normal_random_number(loc=2, scale=2)
    	# 打印结果
    	print(n)
    	# 结果:3.275192443463058

    2 从给定参数的均匀分布中获取随机数的函数

      考虑从均匀分布中获取随机数的时候,要事先知道均匀分布的下界和上界,然后调用Numpy模块的random.uniform函数生成随机数。

    import numpy as np
    
    
    # 定义从均匀分布中获取随机数的函数
    def get_uniform_random_number(low, high):
    	"""
    	:param low: 均匀分布的下界
    	:param high: 均匀分布的上界
    	:return: 从均匀分布中产生的随机数
    	"""
    	# 均匀分布的随机数生成
    	number = np.random.uniform(low, high)
    	# 返回值
    	return number
    
    
    # 主模块
    if __name__ == "__main__":
    	# 函数调用
    	n = get_uniform_random_number(low=2, high=4)
    	# 打印结果
    	print(n)
    	# 结果:2.4462417140153114

    3 按照指定概率生成随机数

      有时候我们需要按照指定的概率生成随机数,比如已知盒子中每种颜色的球的比例,猜测下一次取出的球的颜色。在这里介绍的问题和上面的例子相似,要求给定一个概率列表,从列表对应的数字列表或区间列表中生成随机数,分两部分讨论。

    3.1 按照指定概率从数字列表中随机抽取数字

      假设给定一个数字列表和一个与之对应的概率列表,两个列表对应位置的元素组成的元组即表示该数字在数字列表中以多大的概率出现,那么如何根据这些已知条件从数字列表中按概率抽取随机数呢?在这里我们考虑用均匀分布来模拟概率,代码如下:

    import numpy as np
    import random
    
    
    # 定义从均匀分布中获取随机数的函数
    def get_uniform_random_number(low, high):
    	"""
    	:param low: 均匀分布的下界
    	:param high: 均匀分布的上界
    	:return: 从均匀分布中产生的随机数
    	"""
    	# 均匀分布的随机数生成
    	number = np.random.uniform(low, high)
    	# 返回值
    	return number
    
    
    # 定义从一个数字列表中以一定的概率取出对应区间中数字的函数
    def get_number_by_pro(number_list, pro_list):
    	"""
    	:param number_list:数字列表
    	:param pro_list:数字对应的概率列表
    	:return:按概率从数字列表中抽取的数字
    	"""
    	# 用均匀分布中的样本值来模拟概率
    	x = random.uniform(0, 1)
    	# 累积概率
    	cum_pro = 0.0
    	# 将可迭代对象打包成元组列表
    	for number, number_pro in zip(number_list, pro_list):
    		cum_pro += number_pro
    		if x < cum_pro:
    			# 返回值
    			return number
    
    
    # 主模块
    if __name__ == "__main__":
    	# 数字列表
    	num_list = [1, 2, 3, 4, 5]
    	# 对应的概率列表
    	pr_list = [0.1, 0.3, 0.1, 0.4, 0.1]
    	# 函数调用
    	n = get_number_by_pro(number_list=num_list, pro_list=pr_list)
    	# 打印结果
    	print(n)
    	# 结果:1

    3.2 按照指定概率从区间列表中的某个区间内生成随机数

      给定一个区间列表和一个与之对应的概率列表,两个列表相应位置的元素组成的元组即表示某数字出现在某区间内的概率是多少,已知这些,我们如何生成随机数呢?这里我们通过两次使用均匀分布达到目的,代码如下:

    import numpy as np
    import random
    
    
    # 定义从均匀分布中获取随机数的函数
    def get_uniform_random_number(low, high):
    	"""
    	:param low: 均匀分布的下界
    	:param high: 均匀分布的上界
    	:return: 从均匀分布中产生的随机数
    	"""
    	# 均匀分布的随机数生成
    	number = np.random.uniform(low, high)
    	# 返回值
    	return number
    
    
    # 定义从一个数字列表中以一定的概率取出对应区间中数字的函数
    def get_number_by_pro(number_list, pro_list):
    	"""
    	:param number_list:数字列表
    	:param pro_list:数字对应的概率列表
    	:return:按概率从数字列表中抽取的数字
    	"""
    	# 用均匀分布中的样本值来模拟概率
    	x = random.uniform(0, 1)
    	# 累积概率
    	cum_pro = 0.0
    	# 将可迭代对象打包成元组列表
    	for number, number_pro in zip(number_list, pro_list):
    		cum_pro += number_pro
    		if x < cum_pro:
    			# 从区间[number. number - 1]上随机抽取一个值
    			num = get_uniform_random_number(number, number - 1)
    			# 返回值
    			return num
    
    
    # 主模块
    if __name__ == "__main__":
    	# 数字列表
    	num_list = [1, 2, 3, 4, 5]
    	# 对应的概率列表
    	pr_list = [0.1, 0.3, 0.1, 0.4, 0.1]
    	# 函数调用
    	n = get_number_by_pro(number_list=num_list, pro_list=pr_list)
    	# 打印结果
    	print(n)
    	# 结果:3.49683787011193

     

    展开全文
  • python生成随机数的几种方法

    千次阅读 2020-03-06 21:32:14
    最近在听北邮陈光老师在B站的《python编程与实践》《Python编程与实践》第二课 by 北邮陈光课程是面向初学者的,不过我很喜欢陈老师在开课之前的一些方法论。 以下皆是陈老师课程中给出学习语言的建议: 多思考【多...

    最近在听北邮陈光老师在B站的《python编程与实践》《Python编程与实践》第二课 by 北邮陈光课程是面向初学者的,不过我很喜欢陈老师在开课之前的一些方法论。

    以下皆是陈老师课程中给出学习语言的建议:

    1. 多思考【多总结、多拓展、多联想】
    2. 学习编程最好的方法就是编程【用编程去检验知识、以问题为线索编程】
    3. 克服拖延、怠慢【爱上Ta、现在就去做、如果觉得没意思就去找意思、水到自然渠成因而不必焦虑,不能轻言放弃】

    这一讲还是比较简单的,主要是关于如何做选择?【常数值、随机数】

    import random
    
    number_options = input("请问您有几个选项?")
    
    result = random.randint(1,int(number_options))
    
    print("建议您选择:")
    print(result)
    

    因为我已经有些编程基础~所以提高对自己的要求,阶段性总结一下,有哪些常用的随机方法嘞?

    random库

    强大的random库其实已经可以解决绝大部分的问题

    • 生成随机整数
    random.ranint(a,b)#生成a,b之间的随机整数,a<= * <=b
    
    • 生成随机浮点数
    random.random()#生成01之间的随机浮点数
    #与之类似的是
    random.uniform(a,b)#生成a,b范围之间的随机浮点数,注意是a< * <b
    
    • 有规律的随机数列中选数
    random.randrange([start],[end],stept)#生成一个指定范围内,按stept递增的随机数
    
    • 从有选择的序列中随机选择一个
    hi = random.choices(('你好','hello','hola','안녕하세요'))
    print(hi)
    

    运行结果:

    ['你好']
    
    • 打乱序列中的元素
    list_example = ['春眠','不','觉晓']
    random.shuffle(list_example)
    print(list_example)
    

    运行结果:

    ['不', '春眠', '觉晓']
    

    其实这差不多是我为数不多的编程中,用到最多的几个random函数了,但有些时候,我们需要按照特定的规则(例如均匀分布、二项分布)等等去生成指定的随机数,这可怎么办呢?
    random 中也有相应的函数

    • random.normalvariate(a,b)#返回服从均值为a,标准差为b的正态分布的随机数
    r = random.normalvariate(1,2)
    print(r)
    #结果0.7734903957758139
    
    • random.gauss(a,b)#返回服从均值为a,标准差为b的高斯分布的随机数
    r = random.normalvariate(1,2)
    print(r)
    #结果1.4645488924956322
    

    random还不止以上这些函数,不妨打开pycharm玩一玩~
    在这里插入图片描述

    升级版:numpy

    numpy支持大量的维度数组与矩阵运算,并且也针对数组运算提供大量的数学函数库
    以下内容就属于现学现卖了~

    • numpy.random.rand(d0, d1, …, dn)
      作用:产生一个给定形状的数组,数组中的值服从[0, 1)之间的均匀分布。
    r = np.random.rand(10)
    print(r)
    #结果[0.57456995 0.03680332 0.11231725 0.49970135 0.30355628 0.25136904
     0.02186536 0.12370881 0.70341356 0.69982662]
    
    • numpy.random.uniform(low=0.0, high=1.0, size=None)
      作用:返回一个在区间[low, high)中均匀分布的数组,size指定形状。
    r = np.random.uniform(1,5,5)
    print(r)
    #结果[2.97038005 4.92966267 2.908615   3.43066381 1.4175511 ]
    
    • numpy.random.randn(d0, d1, …, dn)
      作用:返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。
    r = np.random.randn(5)
    print(r)
    #结果[-1.72875537 -0.5942273  -1.76899173  0.62020556 -0.92238867]
    
    • numpy.random.normal(loc=0.0, scale=1.0, size=None)
      作用:返回一个由size指定形状的数组,数组中的值服从 μ = l o c , σ = s c a l e \mu=loc,σ=scale μ=loc,σ=scale 的正态分布
    r = np.random.normal(1,5,4)
    print(r)
    #结果[ 7.30499325 -5.00617673 -3.14187747 -0.56450274]
    

    参考资料

    详解用python生成随机数的几种方法
    ColdCode使用numpy产生随机数
    正态分布、正态分布采样及Python实现

    展开全文
  • python生成随机数和随机矩阵

    千次阅读 2019-12-03 11:09:55
    生成随机数 使用 random 模块 random.random() 用于随机生成一个0到1的浮点数 random.randint(start,stop) 随机生成[start,stop]区间内的整数 代码示例: import random print (random.random()) print(random....

    生成随机数

    使用 random 模块
    random.random() 用于随机生成一个0到1的浮点数
    random.randint(start,stop) 随机生成[start,stop]区间内的整数
    代码示例:

    import random
    print (random.random())
    print(random.randint(2,5))
    

    输出结果:
    0.28113894170242715
    2

    生成随机矩阵

    import numpy as np
    
    print(np.random.rand(4,5))
    print(np.random.randint(2,4,(3,3)))#(3,3)表示矩阵大小
    

    [[0.9301374 0.3101388 0.87523224 0.72690872 0.29985264]
    [0.83968348 0.62680457 0.80127134 0.22433064 0.01149985]
    [0.2193549 0.25525533 0.96211193 0.33978737 0.06699431]
    [0.05281168 0.07236824 0.0226833 0.99250086 0.72282644]]
    [[3 2 3]
    [2 3 3]
    [3 2 3]]

    展开全文
  • python 生成随机数模块

    2020-02-10 22:09:17
    因为要做数值仿真实验,用到了随机生成模块random 因此,将相关用法列出如下: #todo 产生随机数的模块 import random random.uniform(3,4) # 3到4之间的均匀分布 random.gauss(5,1) # 以5为均值,1为方差的高斯...
  • python 生成随机数的三种方法

    万次阅读 多人点赞 2018-09-28 18:05:35
    1. 使用 random 包生成随机数 可以生成 均匀分布, 高斯分布,(包括正态分布) 指数分布,(与泊松分布有区别:泊松分布表示一段时间发生多少次,而指数分布表示两次发生的时间间隔) 贝塔分布, 韦布尔分布的...
  • python生成随机数主要使用random模块和numpy库中的random函数。 前者主要用于生成随机数和实现序列中随机数和随机数列的挑选,后者用来生成a*b维的随机矩阵。 一、random模块 random模块中将近有7个函数都是...
  • Python生成随机数的几种方法

    千次阅读 2019-07-10 17:51:17
    Python中用于生成随机数的模块是random,在使用前需要import。 random.random():生成一个0-1之间的随机浮点数 random.randint(a,b):生成[a,b]之间的整数,包含a,b random.uniform(a,b):生成[a,b]之间的浮点数 ...
  • Python生成随机数

    千次阅读 2020-07-01 09:11:59
    随机数生成
  • python生成随机数

    千次阅读 2020-11-17 19:08:12
    一、Python标准库中的random函数 import random 1.random.random() 用于生成一个0到1的随机浮点数: 0 <= n < 1.0 2.random.randint(start,stop) 随机生成[start,stop]区间内的整数 3.random.uniform(start,...
  • python生成随机数列表

    万次阅读 2018-10-12 11:13:31
    最直接的方式:用numpy.random模块来生成随机数组 1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机浮点数数组,参数...
  • Python生成随机数的一些函数

    千次阅读 2017-07-06 09:26:23
    头文件: import random1、生成一个随机浮点数,范围是0-1: print random.random()2、生成指定范围内的随机浮点数: print random.uniform(a,b)3、生成指定范围内的随机整数: print random.randint(a,b)4、生成指定...
  • python生成6位随机数In this tutorial, you will see how we can generate random number in Python. 在本教程中,您将看到我们如何在Python中生成随机数。 Random number means we can’t predict that which ...
  • python生成随机数并存到excel中的一列

    千次阅读 2018-09-19 11:09:57
    import random import xlwt b = [] for i in range(1, 1500): a = [] #data = random.uniform(0.5, 4) data = random.randint(1, 154) data = round(data, 6) a.append(data) if a not in...
  • Python生成随机数与预测平均数

    千次阅读 2020-03-15 00:23:52
    Python生成随机数 具体实现代码如下: import random a = random.uniform(1.2, 1.6) # 控制随机数的精度round(数值,精度),精度可以自行设定 list1 = [] for i in range(300): a = random.uniform(1.2, 1.6) b =...
  • 利用python生成随机数(指定随机数范围以及随机数小数位数) 这是一个悲惨的故事,相信大家经历过向数据库里面补录数据的经历不,任务是非常的简单呀,但是吧工作量大呀,比如小编有一次进行数据补录,居然有2万多...
  • 1.random.random():随机生成一个0~1之间的浮点数。 2.random.uniform(a,b):随机生成一个(a,b)之间的浮点数。 3.random.randint(a,b):随机生成一个(a,b)之间的整数。 4.random.randrange(a,b,n):随机生成(a,...
  • seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。。 语法 以下是 seed() 方法的语法: import random random.seed ( [x] ) random random.seed ( [x] ) 注意:seed(()是不能...
  • 复制代码 代码如下:import random def genrand(small, big) : return small + (big-small) * random.random() def display(small, big) : return r’请输入上下限(默认%.2f~%.2f):’ % (small, big) ...
  • 最近接个项目,项目要求是这样的:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再生成随机数作为学生的考试成绩,具体实现代码大家参考下本
  • python生成随机数、随机字符、随机字符串

    万次阅读 多人点赞 2019-06-06 12:47:36
    python生成随机数、随机字符、随机字符串 本文是基于Windows 10系统环境,实现python生成随机数、随机字符、随机字符串: Windows 10 PyCharm 2018.3.5 for Windows (exe) python 3.6.8 Windows x86 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,079
精华内容 19,231
关键字:

python生成随机数的方法

python 订阅