精华内容
参与话题
问答
  • python生成随机数

    千次阅读 多人点赞 2018-11-17 15:07:03
    #python中如何和生成随机数 import random #生成0-1之间的随机浮点数 a = random.random() #生成一定范围的随机浮点数 a = random.uniform(10,20) #生成某一范围的随机整数 a = random.randint(10,20) #从一个列表...
    #python中如何和生成随机数
    import 	random
    #生成0-1之间的随机浮点数
    a = random.random()
    #生成一定范围的随机浮点数
    a = random.uniform(10,20)
    #生成某一范围的随机整数
    a = random.randint(10,20)
    #从一个列表中随机获取一个值
    a = random.choice([5,'hello',[1,2,3],'world'],)
    #取出指定个数的元素
    a =random.choices([5,'hello',[1,2,3],'world'],k=2)
    print(a)
    

    #生成指定的随机密码

    import random 
    def getrand(num):
    	s = ""
    	for i in range(num):
    		#判断是选字母还是数字(1)
    		n = random.randint(1,2)
    		if n == 1:
    			num = random.randint(0,9)
    			s += str(num)
    		else:
    			#再次随机判断大写还是小写
    			m = random.randint(1,2)
    			if m  == 1:
    				asc = chr(random.randint(65,90))
    				s += asc
    			else:
    				asc = chr(random.randint(97,122))
    				s += asc
    	print(s)
    getrand(8)
    
    展开全文
  • python生成随机数的几种方法

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

    欢迎交流!    QQ:3408649893

    展开全文
  • Python 产生随机数

    万次阅读 2018-08-05 16:28:52
    在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。 总体来说,numpy.random模块...4. 生成器:种随机数种子,根据同一种子产生的随机数是相同的 以下是...

     

    在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。
    总体来说,numpy.random模块分为四个部分,对应四种功能:
    1. 简单随机数: 产生简单的随机数据,可以是任何维度
    2. 排列:将所给对象随机排列
    3. 分布:产生指定分布的数据,如高斯分布等
    4. 生成器:种随机数种子,根据同一种子产生的随机数是相同的
    以下是详细内容以及代码实例:(以下代码默认已导入numpy:import numpy as np

    1. 生成器

    电脑产生随机数需要明白以下几点:
    (1)随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。
    (2)只要用户不设置随机种子,那么在默认情况下随机种子来自系统时钟(即定时/计数器的值)
    (3)随机数产生的算法与系统有关,Windows和Linux是不同的,也就是说,即便是随机种子一样,不同系统产生的随机数也不一样。
    numpy.random 设置种子的方法有:

    np.random.RandomState(42)

    2、简单随机数

                                                 

                                                          

    例:

    rng = np.random.RandomState(42) # 生成随机数时可指定一种子,目的是为了生成相同的随机数,实现代码的复现。

    X = rng.randn(100, 2)

     

    参考自:https://blog.csdn.net/jinxiaonian11/article/details/53143141

     

    具体解读:

    1、np.random.rand()

    给定一个形状创建数组,并在数组中加入[0,1]之间均匀分布的随机样本。

    numpy.random.rand(d0, d1, ..., dn),产生d0 - d1 - ... - dn形状的在[0,1)上均匀分布的float型数。

    2、np.random.randn()

    以给定的形状创建一个数组,数组元素符合标准正态分布N(0,1)。

    若要获得一般正态分布N(u,sigma2),可用 sigma*np.random.randn+u

    numpy.random.randn(d0,d1,...,dn),产生d0 - d1 - ... - dn形状的标准正态分布的float型数。

    3.numpy.random.randint()
    用法是:numpy.random.randint(low,high=None,size=None,dtype)
    生成在半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low)

    numpy.random.randint(low, high=None, size=None, dtype='l'),产生随机整数

    4.numpy.random.random_integers()
    用法是: numpy.random.random_integers(low,high=None,size=None)
    生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low]

    此外,若要将【a,b】区间分成N等分,也可以用此函数实现

     numpy.random.random_integers(low, high=None, size=None),在闭区间上产生随机整数;


    a+(b-a)*(numpy.random.random_integers(N)-1)/(N-1)

    5.numpy.random_sample()
    用法是: numpy.random.random_sample(size=None)
    以给定形状返回[0,1)之间的随机浮点数

     

    6.numpy.random.choice()
    用法是: numpy.random.choice(a,size=None,replace=True,p=None)
    若a为数组,则从a中选取元素;若a为单个int类型数,则选取range(a)中的数
    replace是bool类型,为True,则选取的元素会出现重复;反之不会出现重复
    p为数组,里面存放选到每个数的可能性,即概率

    7、函数原型:  numpy.random.uniform(low,high,size)

    功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.

    参数介绍: 
        
        low: 采样下界,float类型,默认值为0;
        high: 采样上界,float类型,默认值为1;
        size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值

    返回值:ndarray类型,其形状和参数size中描述一致。


    参考:https://blog.csdn.net/u013920434/article/details/52507173 
     

    展开全文
  • Python 中用于生成随机数的模块是 random,在使用前需要 import. 如下例子可以酌情列 举: random.random():生成一个 0-1 之间的随机浮点数; random.uniform(a, b):生成[a,b]之间的浮点数; random.randint(a,...

    在 Python 中用于生成随机数的模块是 random,在使用前需要 import. 如下例子可以酌情列
    举:
    random.random():生成一个 0-1 之间的随机浮点数;
    random.uniform(a, b):生成[a,b]之间的浮点数;
    random.randint(a, b):生成[a,b]之间的整数;
    random.randrange(a, b, step):在指定的集合[a,b)中,以 step 为基数随机取一个数;
    random.choice(sequence):从特定序列中随机取一个元素,这里的序列可以是字符串,列表,
    元组等。

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

    万次阅读 多人点赞 2018-09-28 18:05:35
    1. 使用 random 包生成随机数 可以生成 均匀分布, 高斯分布,(包括正态分布) 指数分布,(与泊松分布有区别:泊松分布表示一段时间发生多少次,而指数分布表示两次发生的时间间隔) 贝塔分布, 韦布尔分布的...
  • python生成随机数列表

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

    万次阅读 多人点赞 2018-06-05 16:50:42
    Python中可以用于随机数生成的有两种主要途径,一是random模块,另一个...random模块中将近有7个函数都是可以用来生成随机数的: ① random.random() 功能:随机生成一个 [0,1) 的浮点数 用法: import rando...
  • Python中产生随机数

    万次阅读 多人点赞 2019-07-09 18:42:27
    Python产生随机数: 一.Python自带的random库 1.参生n--m范围内的一个随机数: random.randint(n,m) 2.产生0到1之间的浮点数: random.random() 3.产生n---m之间的浮点数: random.uniform(1.1,5.4) 4.产生从n...
  • 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 ...
  • Python 生成一组随机数列表

    万次阅读 多人点赞 2017-12-21 20:00:45
    最直接的方式:用numpy.random模块来生成随机数组1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一随机浮点数,当有一参数时,返回该参数长度大小的一维随机浮点数数组,参数建议...
  • 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生成随机数的几种方法

    千次阅读 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生成随机数和随机矩阵

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

    2016-09-19 23:25:08
    1.在某个范围生成x个随机数使用 numpy包 实现>>> import numpy as np >>> np.random.randint(1, 100, 10) array([23, 55, 7, 75, 22, 83, 35, 6, 24, 33])上述在0和100之间生成了10个随机数。2.生成无重复的随机数...
  • 首先,需要导入random模块:import random随机取1-33之间的1个随机数,可能重复:random.choice(range(1,34))print得到一系列随机数,执行一次得到一个随机数:print(random.choice(range(1,34)))随机取1-33之间的6...
  • Python生成不重复的随机数

    万次阅读 多人点赞 2019-08-11 17:19:18
    表示从[1,N]的范围内随机生成k数,结果以列表返回 栗子1: 随机生成5(1, 10)范围内的数字: import random for i in range(5): L1 = random.randint(1, 10) print(L1, end=' ') 结果为: 6 7 9 2 9 栗子2...
  • python生成n指定范围内的随机数

    万次阅读 2019-10-05 16:30:17
    python生成n指定范围内的随机数 ①输入随机数范围和数 ②判断随机数个数是否小于n ③随机生成一个随机数 ④判断随机数是否在列表中存在 ⑤如果不存在,则将该随机数存进列表 重复步骤②到⑤ 看代码: import ...
  • Python生成随机数和numpy生成随机数

    千次阅读 2019-06-22 09:18:17
    module 'random' has ...1、random.random()随机产生一个随机数,可以使用循环生成更多的数 random.randint()生成整数,uniform生成浮点数,uniform可以有三参数,开始,结束,数 2、import numpy as np np....
  • 1. 列表排序可采用两种方法 sorted(list) 直接改变list 调用list的方法 list.sort 2. random.randint(a,b) 生成大于等于a小于等于b的整数 random.random() 生成在[0,1)区间上的实数 random.choice...
  • Python生成任意范围的固定随机数

    千次阅读 2018-05-24 18:50:32
    import numpy as np random = np.random.RandomState(0) #随机数种子,相同种子下每次运行生成随机数相同 color = random.uniform(0., 1., size=3)

空空如也

1 2 3 4 5 ... 20
收藏数 38,580
精华内容 15,432
关键字:

python生成随机数

python 订阅