精华内容
下载资源
问答
  • python生成随机数列表

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

    一. 最直接的方式:用numpy.random模块来生成随机数组
    1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机浮点数数组,参数建议是整数型,因为未来版本的numpy可能不支持非整形参数。

    import numpy as np
    >>> np.random.rand(10)
    array([ 0.89103033,  0.60550521,  0.13856488,  0.57468244,  0.370697  ,
            0.31823162,  0.58358377,  0.97177935,  0.76400592,  0.11269547])

    2、np.random.randn该函数返回一个样本,具有标准正态分布。

    >>> np.random.randn(10)
    array([-0.42625455, -1.86248727,  0.96323332, -0.32809754, -0.79697695,
           -0.07145189,  2.89728643,  2.32095237,  1.12925633, -0.39210317])

    3、np.random.randint(low[, high, size]) 返回随机的整数,位于半开区间 [low, high)。

    >>> np.random.randint(10,size=10)
    array([4, 1, 4, 3, 8, 2, 8, 5, 8, 9])

    4、random_integers(low[, high, size]) 返回随机的整数,位于闭区间 [low, high]。

    >>> np.random.random_integers(5)
    2

    5、 np.random.shuffle(x) 类似洗牌,打乱顺序;np.random.permutation(x)返回一个随机排列

    >>> arr = np.arange(10)
    >>> np.random.shuffle(arr)
    >>> arr
    [1 7 5 2 9 4 3 6 0 8]

    >>>> np.random.permutation(10)
    array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])
     

    原文地址:https://blog.csdn.net/christianashannon/article/details/78867204

    展开全文
  • 1. 列表排序可采用两种方法sorted(list) 直接改变list调用list的方法 list.sort2.random.randint(a,b) 生成大于等于a小于等于b的整数random.random() 生成一个在[0,1)区间上的实数random.choice(sequence) sequence...

    1.  列表排序可采用两种方法

    sorted(list) 直接改变list

    调用list的方法 list.sort

    2.

    random.randint(a,b) 生成大于等于a小于等于b的整数

    random.random() 生成一个在[0,1)区间上的实数

    random.choice(sequence) sequence泛指list、tuple、字符串等

    random.randrange(start,stop,step) step务必给出,在本次实践中,如果不给出将会随机给一个值且极大可能为负数

    具体参考 https://www.cnblogs.com/whiteprism/p/6290814.html

    3. 代码实例

    导入模块 import random

    def FetchRandom():

    ‘生成随机数列表并从中抓取‘

    N1 = random.randint(2,100)

    N2 = random.randint(1,100)

    while N2>N1:

    N2 = random.randint(1,100)

    alist = []

    for i in range(N1):

    n = random.randint(0, 2 ^ 31 - 1)

    alist.append(n)

    blist = []

    for i in range(N2):

    blist.append(random.randrange(alist[0],alist[N1-1],1))

    #blist.append(random.choice(alist))

    print sorted(blist)

    print ‘N1=‘,N1,‘ N2=‘,N2,‘ n=‘,n

    4. 输出效果

    原文:https://www.cnblogs.com/AHappyBird/p/9340841.html

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

    万次阅读 多人点赞 2018-07-13 20:32:27
    本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为3部分,并附上代码。1 从给定参数的正态分布中...

    本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为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

     

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

    今天学习了用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生成随机数的几种方法

    本文地址: http://www.cppcns.com/jiaoben/python/267431.html

    展开全文
  • 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) #从一个列表...
  • 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为3部分,并附上代码。 1 从给定参数的正态分布中...
  • Python 生成随机数

    2019-08-02 23:56:18
    从1-100的整数列表中,生成10个随机整数 import random list = range(1, 101) slice = random.sample(list, 10) print(slice) # [39, 17, 5, 42, 38, 97, 16, 30, 11, 82] 2、随机整数 从1-100中,生成1个随机...
  • 在研究针对不同值范围的程序的模型或行为时,需要生成随机数Python可以使用random模块生成此类随机数。在下面的示例中,我们将首先看到如何生成一个随机数,然后对其进行扩展以生成一个随机数列表。生成单个随机数...
  • 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]之间的浮点数 ...
  • random模块常用方法 random.random()生成一个随机的浮点数,范围是在0.0~1.0之间。 random.uniform()生成一个随机的浮点数,它可以设定浮点数...random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返
  • https://blog.csdn.net/christianashannon/article/details/788672041、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机...
  • python产生10个不同随机数的方法:首先创建一个result的结果空列表;...【相关学习推荐:python教程】python产生10个不同随机数的方法:1、第一种range(1,10)生成一个1-10之间的列表,接着利用random的sample...
  • 你可以把它和for循环一起使用10次random.randint(10, 90)将给你一个10到90之间的随机数(不是一个列表)有了这些信息,我们可以将脚本更改为:import randomeven_sum = 0odd_sum = 0for number_of_turns in r...
  • 最直接的方式:用numpy.random模块来生成随机数组1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机浮点数数组,参数建议...
  • 最直接的方式:用numpy.random模块来生成随机数组1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机浮点数数组,参数建议...
  • 1. 列表排序可采用两种方法sorted(list) 直接改变list调用list的方法 list.sort2.random.randint(a,b) 生成大于等于a小于等于b的整数random.random() 生成一个在[0,1)区间上的实数random.choice(sequence) sequence...
  • Python 生成一组随机数列表

    万次阅读 多人点赞 2017-12-21 20:00:45
    最直接的方式:用numpy.random模块来生成随机数组1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机浮点数数组,参数建议...
  • 我在打印随机数列表时看到过多个线程,但没有一个线程符合我的特定要求,而且我似乎无法正确处理。在我想开发一个代码,它将在某个间隔上生成一个随机数的列表,该列表是一个单独间隔的随机长度,而且,重复项需要在...
  • python_生成随机数列表排序

    千次阅读 2018-07-20 13:03:00
    1. 列表排序可采用两种方法 sorted(list) 直接改变list 调用list的方法 list.sort 2. random.randint(a,b) 生成大于等于a小于等于b的整数 random.random() 生成一个在[0,1)区间上的实数 random.choice...
  • 首先,需要导入random模块:import random随机取1-33之间的1个随机数,可能重复:random.choice(range(1,34))print得到一系列随机数,执行一次得到一个随机数:print(random.choice(range(1,34)))随机取1-33之间的6个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 491
精华内容 196
关键字:

python生成随机数列表

python 订阅