精华内容
下载资源
问答
  • Random

    千次阅读 2018-02-26 17:38:35
    Random模块1、Python中的random模块
    展开全文
  • Python random模块常用方法的使用

    千次阅读 多人点赞 2019-07-21 23:36:54
    Python random模块常用方法的使用 Python 的random模块包含许多随机数生成器。 random是Python标准库之一,直接导入即可使用。本文介绍random中常用方法的用法。 一、生成随机的整数 # coding=utf-8 import ...

    Python random模块常用方法的使用

    Python 的random模块包含许多随机数生成器。

    random是Python标准库之一,直接导入即可使用。本文介绍random中常用方法的用法。

    一、生成随机的整数

    # coding=utf-8
    import random
    
    
    print(random.randint(1, 5))
    print(random.randrange(0, 51, 5))

    运行结果:

    3
    40

    randint(start, end)会返回一个start到end之间的整数,这里是左闭右闭区间。也就是说可能会返回end值,在Python中,这个是一个比较特殊的地方,一般来说都是左闭右开的区间。

    randrange(start, end, step)返回一个range(start, end, step)生成的列表中的随机一个值。这里是左闭右开区间,如果上面代码的51如果换成50,则不可能返回50。

    每次运行的结果是不同的,因为是随机返回其中一个。

    二、生成随机的小数

    print(random.random())
    print(random.uniform(2, 5))

    运行结果:

    0.49541524802465897
    2.948656863619216

    random()返回0到1之间的任意一个浮点数。

    uniform(start, end)返回start到end之间的任意一个浮点数,其实就是将random()的结果乘(end-start),代码就是这么实现的。

    三、从字符串、列表、元组中随机返回一个值

    choice_str = 'python'
    print(random.choice(choice_str))
    choice_list = [i for i in range(1, 6)]
    print("choice_list: ", choice_list)
    print(random.choice(choice_list))
    choice_tuple = (10, 20, 30, 40, 50)
    print(random.choice(choice_tuple))

    运行结果:

    h
    choice_list:  [1, 2, 3, 4, 5]
    5
    20

    choice()返回可迭代对象中的一个值。可以是列表、元组、字符串,不能是字典和集合。

    四、从字符串、列表、元组中随机返回一次或多次,且设置权重

    choice_list = [i for i in range(1, 6)]
    print("choice_list: ", choice_list)
    print(random.choices(choice_list))
    choice_tuple = (10, 20, 30, 40, 50)
    print(random.choices(choice_tuple, k=2))
    choice_str = 'python'
    print(random.choices(choice_str, weights=[0.5, 0, 0.5, 0, 0, 0], k=7))
    print(random.choices(choice_str, cum_weights=[0, 0.5, 0.5, 1, 1, 1], k=7))

    运行结果:

    choice_list:  [1, 2, 3, 4, 5]
    [4]
    [20, 50]
    ['t', 'p', 't', 'p', 'p', 't', 't']
    ['h', 'y', 'h', 'h', 'h', 'h', 'y']

    choices(population, weights=None, cum_weights=None, k=1)从可迭代对象中返回一次或多次值,返回结果是一个列表。

    weights是每一个值对应的权重列表,默认是None,所有元素权重相等。传入权重列表时,列表长度必须与可迭代对象的长度相等,值与权重按索引一一对应。传入的值可以是任何数字,只要能对比出不同值之间的权重大小就可以,系统会按权重大小来计算返回每个值的可能性,如上面的例子中只会返回“python”中的p和t,因为其他字符的权重为0。

    cum_weights是每一个值对应的累计权重列表,默认是None,所有元素权重相等。传入权重列表时,列表长度必须与可迭代对象的长度相等。权重是累计的,每一个位置的累计权重是前面所有元素的权重之和加上当前位置元素的权重,也就是说这个列表后面的值不可能小于前面的值。系统会根据累计权重值计算出每个元素的权重,然后计算返回每个值的可能性,如上面的例子中只会返回“python”中的y和h,因为其他字符的权重是0。

    注意:weights和cum_weights不能同时有值,即使计算结果一样。

    k值是从可迭代对象中获取值的次数,每次只取其中的一个,重复k次,所以,理论上,有可能k次都取到同一个元素。

    五、从字符串、列表、元组中随机获取一个或多个值

    sample_list = [i for i in range(1, 6)]
    print("sample_list: ", sample_list)
    print(random.sample(sample_list, 1))
    sample_tuple = (10, 20, 30, 40, 50)
    print(random.sample(sample_tuple, 2))
    sample_str = 'python'
    print(random.sample(sample_str, 3))

    运行结果:

    sample_list:  [1, 2, 3, 4, 5]
    [1]
    [10, 40]
    ['p', 'h', 'o']

    sample(population, k)从可迭代对象中随机返回k个元素,返回一个列表。

    k表示返回元素的个数,这个参数没有默认值,必须传值。并且,是一次从可迭代对象中返回k个值,不是分k次,每个元素不会重复被取。此外,k值不可以大于可迭代对象的长度,否则报错,而上面choices中的k可以无限大,只要需要。使用场景不同,要注意区别。

    六、随机打乱顺序

    cards = ['%s-%s' % (a, b) for a in ['Spade', 'Heart', 'Diamond', 'Club'] for b in
             ([str(i) for i in range(3, 11)] + [j for j in 'JQKA2'])] + ['Black joker', 'Red joker']
    print("Before: ", cards)
    random.shuffle(cards)
    print("After: ", cards)

    运行结果:

    Before:  ['Spade-3', 'Spade-4', 'Spade-5', 'Spade-6', 'Spade-7', 'Spade-8', 'Spade-9', 'Spade-10', 'Spade-J', 'Spade-Q', 'Spade-K', 'Spade-A', 'Spade-2', 'Heart-3', 'Heart-4', 'Heart-5', 'Heart-6', 'Heart-7', 'Heart-8', 'Heart-9', 'Heart-10', 'Heart-J', 'Heart-Q', 'Heart-K', 'Heart-A', 'Heart-2', 'Diamond-3', 'Diamond-4', 'Diamond-5', 'Diamond-6', 'Diamond-7', 'Diamond-8', 'Diamond-9', 'Diamond-10', 'Diamond-J', 'Diamond-Q', 'Diamond-K', 'Diamond-A', 'Diamond-2', 'Club-3', 'Club-4', 'Club-5', 'Club-6', 'Club-7', 'Club-8', 'Club-9', 'Club-10', 'Club-J', 'Club-Q', 'Club-K', 'Club-A', 'Club-2', 'Black joker', 'Red joker']
    After:  ['Spade-3', 'Diamond-J', 'Club-8', 'Club-7', 'Diamond-10', 'Spade-J', 'Heart-J', 'Diamond-A', 'Spade-K', 'Spade-10', 'Spade-8', 'Club-10', 'Club-J', 'Heart-9', 'Diamond-4', 'Diamond-5', 'Red joker', 'Spade-5', 'Club-4', 'Club-Q', 'Heart-7', 'Spade-Q', 'Club-A', 'Spade-6', 'Diamond-6', 'Black joker', 'Spade-7', 'Heart-Q', 'Club-9', 'Club-3', 'Heart-K', 'Diamond-Q', 'Diamond-K', 'Spade-2', 'Heart-5', 'Heart-A', 'Heart-4', 'Heart-3', 'Diamond-7', 'Club-K', 'Diamond-9', 'Spade-4', 'Heart-2', 'Spade-A', 'Club-6', 'Club-2', 'Heart-8', 'Diamond-2', 'Heart-10', 'Heart-6', 'Club-5', 'Spade-9', 'Diamond-8', 'Diamond-3']
    

    shuffle()将可迭代对象的顺序随机打乱,上面例子中我们模拟了一副扑克牌,然后用shuffle()完成“洗牌”。

    注意:shuffle()没有返回值,是直接对可迭代对象进行修改。

     

    random除了上面的方法外,还有一些按数学分布随机生成数据的方法,如正太分布,指数分布等,这里就不继续举例了,其实random源码也不是很多,里面的方法数量是人工可数的,需要的话您可以在Pycharm中按住Ctrl点进去看看。

     

     

     

    展开全文
  • 论文“Random Walks for Image Segmentation”matlab代码,可直接运行,论文中提供的代码还需要到别处下载几个函数才能运行,本文件已包含这几个函数。
  • 1、np.random.rand()函数 语法: np.random.rand(d0,d1,d2……dn) 注:使用方法与np.random.randn()函数相同 作用: 通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不...

    目录

    一. np.random.rand()函数

    二. np.random.randn()函数


    一. np.random.rand()函数

    • 语法:np.random.rand(d0,d1,d2……dn)
    • 注意:使用方法与np.random.randn()函数相同。
    • 作用: 通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。 
    • 应用:在深度学习的Dropout正则化方法中,可以用于生成dropout随机向量(dl),
    • 例如:keep_prob表示保留神经元的比例:dl = np.random.rand(al.shape[0],al.shape[1]) < keep_prob
    • 例如:

    二. np.random.randn()函数

    • 语法:np.random.randn(d0,d1,d2……dn)
    • 1. 当函数括号内没有参数时,则返回一个浮点数
    • 2. 当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵;
    • 3. 当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵
    • 4. np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()的输入参数为元组(tuple)。
    • 5. np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。
    • 作用:通过本函数可以返回一个或一组服从标准正态分布的随机样本值。
    • 特点:标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)。对应的正态分布曲线如下所示,即

    • 标准正态分布曲线下面积分布规律是:在-1.96~+1.96范围内曲线下的面积等于0.9500(即取值在这个范围的概率为95%),在-2.58~+2.58范围内曲线下面积为0.9900(即取值在这个范围的概率为99%)。
    • 因此:由np.random.randn()函数所产生的随机样本基本上取值主要在-1.96~+1.96之间,当然也不排除存在较大值的情形,只是概率较小而已。 
    展开全文
  • Random()、Math.random()、Math.round()函数

    千次阅读 2018-04-01 12:28:08
    1.Random()、Math.random()、Math.round()函数的区别;1.Random()、Math.random()、Math.round()函数的区别;1.Random()、Math.random()、Math.round()函数的区别;1)Random():创建一个新的随机数生成器。此构造方法...
    1.Random()、Math.random()、Math.round()函数的区别;1.Random()、Math.random()、Math.round()函数的区别;1.Random()、Math.random()、Math.round()函数的区别;
    


    1)Random():创建一个新的随机数生成器。此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同。
    Random(long seed)使用单个long 种子创建一个新的随机数生成器。该种子是伪随机数生成器的内部状态的初始值,该生成器可通过方法 next(int) 维护。

    Random 的一个特点是:相同种子数的Random对象,对应相同次数生成的随机数字是完全相同的;

    Random random1 = new Random(10);
    Random random2 = new Random(10);

    random1、random2 对应相同次数生成的随机数字完全相同。比如:
    System.out.println(ran.nextInt(10));
    System.out.print(ran2.nextInt(10));
    输出结果:
    5
    5


    2)Math.random()能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
    for(int i = 0; i < 10; i++ ){
    System.out.println((int)(Math.random()*5));
    }
    输出结果:
    4,2,0,1,3,3,4,0,3,3

    在使用Math.Random()的时候,需要注意的地方是该函数是返回double类型的值,所以在要赋值给其他类型的变量的时候注意需要进行塑形转换。
    3)(四舍五入)Math.round(float a)返回最接近参数的 int;
       Math.round(double a)返回最接近参数的 long。
       System.out.println(Math.round(1.5));
       System.out.println(Math.round(-1.5));
       System.out.println(Math.round(0.5));
       System.out.println(Math.round(-0.5));
       输出:
    2
    -1
    1
    0
       特殊情况如下:
    如果参数为 NaN,那么结果为 0。
    如果结果为负无穷大或任何小于等于 Integer.MIN_VALUE 的值,那么结果等于 Integer.MIN_VALUE 的值。
    如果参数为正无穷大或任何大于等于 Integer.MAX_VALUE 的值,那么结果等于 Integer.MAX_VALUE 的值。
     
       (向上取整)Math.ceil(double a)返回最小的(最接近负无穷大) double 值,该值大于等于参数,并等于某个整数。特殊情况如下:
    如果参数值已经等于某个整数,那么结果与该参数相同。
    如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。
    如果参数值小于 0,但是大于 -1.0,那么结果为负 0。
       System.out.println(Math.ceil(1.2));
       System.out.println(Math.ceil(-1.2));
       System.out.println(Math.ceil(0.6));
       System.out.println(Math.ceil(-0.6));
       输出:
    2.0
    -1.0
    1.0
    -0.0-0.0-0.0
    展开全文
  • 用C++封装的CRandom

    2015-08-02 03:26:49
    C++封装的用于产生随机数的类。用法很简单,可以产生指定范围的随机整数,浮点数,布尔值等等。
  • Random函数

    千次阅读 2019-08-15 09:51:08
    Random random=new Random();此构造产生随机数 有参创造 Random random=new Random(X); 此时的X为一个int类型的变量或者可以直接输入整数。 当前的取值范围为左闭右开区间,从0一直到X的整数类型。 ...
  • Python之random.randint()与numpy.random.randint()的区别

    万次阅读 多人点赞 2019-01-02 20:23:49
    【题目】Python之Random.randint()与numpy.random.randint()的区别 参考:Python之Random.randint()与numpy.random.randint()的区别  一、random.randint(a,b):用于生成一个指定范围内的整数。其中参数a是下限...
  • 【吐血整理】Python 常用模块(一):random模块

    千次阅读 多人点赞 2020-12-02 10:34:04
    random() 方法 --- 获取 0.0~1.0 范围内随机浮点数5. randrange() 方法 --- 获取指定范围的随机整数 博主发现当我们自己不知道 Python 某个模块的用法时,自己又没有相关笔记什么的,一般人很少去官网进行查阅,...
  • 关于random forest 的matlab代码

    热门讨论 2014-02-18 21:14:27
    matlab 编写的 关于random forest 的分类和回归代码,已试验,可以成功运行
  • Python利用random模块随机生成浮点数、整数、字符串

    万次阅读 多人点赞 2018-12-23 20:51:38
        我们处理一些问题时经常需要随机生成一些数据,这里介绍如何用python中的random模块生成浮点数、整数、字符串以及一些其他的小应用。 1.总结如下   (1) 随机的浮点数,范围是在0.0~1.0之间:random....
  • Java 随机数生成器 Random & SecureRandom 原理分析

    万次阅读 多人点赞 2019-06-22 21:04:27
    文章目录java.util.Randomjava.Security.SecureRandom/dev/random 与 /dev/urandom资料 Java 里提供了一些用于生成随机数的工具类,这里分析一下其实现原理,以及他们之间的区别、使用场景。 java.util.Random ...
  • Random类主要用来生成随机数,下面列出了他的常用方法和使用案例。 Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数...
  • probability and random processes.pdf

    热门讨论 2011-09-11 15:26:00
    随机信号处理英文教程probability and random processes This book has been written for several reasons, not all of which are academic. This material was for many years the rst half of a book in progress ...
  • R语言编写的随机森林(randomForest)代码。版本4.6-10,
  • Python随机数小结——random和np.random的区别与联系

    千次阅读 多人点赞 2018-09-01 18:25:14
    1. python自带random包: 提供一些基本的随机数产生函数,可满足基本需要 2. numpy.random:提供一些产生随机数的高级函数,满足高级需求 random 介绍 函数 功能 备注 random.random() 生成一个0-1...
  • 传奇脚本关于Random机率算法详细说明 说明:Random 是一个随机标签,一般用于判定脚本里,#if的下面,当然这个标签也用在新爆率文件里,可以查看我写的一篇关于爆率的文章,这里就不多讲了 格式:Random 数值(数值与...
  • 转载:... tf.random_normal 从正态分布中输出随机值。 random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None) shape:一个一维整数张量或Python数组。代表张量的形状...
  • 我并没有发现np.random.random()与np.random.random_sample()在用法上有什么不同之处,所以它们两个在本质上都是一样的,随机给出设定的size尺寸的位于[0,1)半开半闭区间上的随机数。 代码如下: # -*- coding: utf-...
  • Random Forests-LEO BREIMAN

    2014-05-13 13:54:10
    LEO BREIMAN的随机森林论文
  • 最近在做图片的深度学习时,在程序中遇到了random.seed()、numpy.random.seed()、tf.set_random_seed()三种随机种子。在深度学习中,先确定好随机种子,以后每次随机的结果相同。在每次执行代码时,使每次切分后的...
  • random库:Python随机数的生成与应用

    千次阅读 2021-04-13 13:47:05
    import random random.seed(1) # 随机生成浮点数 print("%04.2f" % random.random()) # 随机生成浮点数 print("%04.2f" % random.uniform(100, 200)) # 随机生成整型 print(random.randint(1, 200)) # 随机生成整型...
  • Python语言之随机:常见的三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法之详细攻略 目录 python中常见的三种随机函数random.seed()、numpy.random.seed()...
  • random

    千次阅读 2018-04-15 20:59:00
    一. 简介  ramdom模块提供了一个随机数的函数:random() 它可以返回一个随机生成的实数,范围在[0,1)范围内。需要注意的是random()是不能直接访问的,需要导入模块... 4 print ("random() : ", random.random())...
  • python random

    千次阅读 多人点赞 2018-12-05 10:22:22
    python random python 一些随机数生成 生成 生成0-1之间的随机数 import random random.random() 生成范围内的随机数整数 import random random.randint(start=0, end=10) 生成范围内的随机数浮点数 import random...
  • 详解 Python random

    千次阅读 2019-04-08 20:49:37
    random是Python内置模块 官方文档地址 Python标准库 » 数字和数学模块 » https://docs.python.org/3/library/random.html random- 生成伪随机数 该模块为各种分布实现伪随机数生成器。 对于整数,从范围中有...
  • np.random.randint()的用法

    千次阅读 2019-05-18 10:39:31
    np.random.randint()的用法: np.random.randint(low,high=None,size=None,dtype=‘l’) Method: if low=num1,while high=num2,return random integers from low to high if low=num1,while high=None,return random...
  • 【python】numpy.random用法

    千次阅读 2019-03-01 21:32:23
    numpy中的random主要是用来产生随机数的一个模块。 模块使用中的常见问题: 1、randn()和rand()的区别: numpy.random.randn(d0, d1, …, dn)是从标准正态分布(0均值1方差)中返回一个或多个样本值。 numpy....
  • np.random.seed()函数

    万次阅读 多人点赞 2019-08-10 17:00:36
    np.random.seed()函数用于生成指定随机数。 seed()被设置了之后,np,random.random()可以按顺序产生一组固定的数组,如果使用相同的seed()值,则每次生成的随即数都相同,如果不设置这个值,那么每次生成的随机数...
  • numpy.random用法

    万次阅读 多人点赞 2018-08-23 11:25:33
    最近发现numpy的random用法有很多,不注意很容易混淆,今天参考几个博客内容整理了一下。 numpy.random.randint low、high、size三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,138,728
精华内容 455,491
关键字:

radom