numpy中np.random.seed()的详细用法

  在进行机器学习和深度学习中,我们会经常用到np.random.seed(),利用随机数种子,使得每次生成的随机数相同。

numpy.randn.randn(d0,d1,...,dn)

  • randn函数根据给定维度生成大概率在(-2.58~+2.58)之间的数据
  • randn函数返回一个或者一组样本,具有标准正态分布
  • dn表示每个维度
  • 返回值为指定维度的array
import numpy as np

a = np.random.randn(2,4)  #4*2矩阵
print(a)

b = np.random.randn(4,3,2)  #shape:4*3*2
print(b)

我们将带着两个问题进行np.random.seed()的学习:

  1.np.random.seed()是否一直有效?

  2.np.random.seed(Argument)的参数作用?

E.G.实验

# -*- coding: utf-8 -*-
# @Time : 2019/10/26 20:57
# @Author : BaoBao
# @Mail : [email protected]
# @File : random.seed.py
# @Software: PyCharm

import numpy as np

if __name__ == ‘__main__‘:
    i = 0
    while (i < 6):
        if (i < 3):
            np.random.seed(0)
            print(np.random.randn(1, 5))
        else:
            print(np.random.randn(1, 5))
            pass
        i += 1

    print("-------------------")
    i = 0
    while (i < 2):
        print(np.random.randn(1, 5))
        i += 1
    print(np.random.randn(2, 5))

    print("---------reset----------")
    np.random.seed(0)
    i = 0
    while (i < 8):
        print(np.random.randn(1, 5))
        i += 1

运行截图:

  可以看出,np.random.seed()对后面的随机数一直有效。

  两次利用random.seed()后,即使跳出循环以后,生成随机数的结果依然相同。第一次跳出while循环后,进入第二次while循环,

得到的两个随机数组确实和加了随机数种子不一样。但是后面的加入随机数种子的,八次循环中的结果和前面的结果是一样的。说明,

随机数种子对后面的结果一直有影响。同时,加入随机数种子以后,后面的数组都是按一定的顺序生成的。

E.G.随机数种子参数的作用

# -*- coding: utf-8 -*- # @Time : 2019/10/26 20:57 # @Author : BaoBao# @Mail : [email protected] # @File : random.seed.py # @Software: PyCharm
import numpy as np

if __name__ == ‘__main__‘:
    i = 0
    np.random.seed(0)
    while (i < 3):
        print(np.random.randn(1, 5))
        i += 1
    i = 0
    print("---------------------")
    np.random.seed(1)
    i = 0
    while (i < 3):
        print(np.random.randn(1, 5))
        i += 1

运行截图:

  当随机数种子参数为0和1时,生成的随机数结果相同。说明该参数指定了一个随机数生成的起始位置。每个参数对应一个位置。

并且在该参数确定后,其后面的随机数的生成顺序也就确定了。所以,随机数种子的参数怎么选择?这个参数只是确定一下随机数的起始位置,可随意分配.

对你有帮助就支付宝请我喝可乐叭~~~

原文地址:https://www.cnblogs.com/baobaotql/p/11746751.html

时间: 2024-11-09 03:23:22

numpy中np.random.seed()的详细用法的相关文章

numpy:np.random.seed()

np.random.seed()函数可以保证生成的随机数具有可预测性. 可以使多次生成的随机数相同 1.如果使用相同的seed( )值,则每次生成的随即数都相同: 2.如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同. 在机器学习和深度学习中,如果要保证部分参数(比如W权重参数)的随机初始化值相同,可以采用这种方式来实现. 原文地址:https://www.cnblogs.com/lemon-rain/p/9830503.html

Linux中find、grep命令详细用法

在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下: find命令 find命令的一般形式 find命令的常用选项及实例 find与xargs grep命令 grep命令的一般形式 grep正则表达式元字符集(基本集) grep命令的常用选项及实例 1.find命令 find命令是一个无处不在命令,是linux中最有用的命令之一.find命令用于:在一个目录(及子目录)中搜索文件,你可以

PHP中SESSION与COOKIE的详细用法

1. PHP的COOKIEcookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制.PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似.1.1 设置cookie:可以用 setcookie() 或 setrawcookie() 函数来设置 cookie.也可以通过向客户端直接发送http头来设置.1.1.1 使用setcookie()函数设置cookie:bool setc

numpy中的random

翻译自官网的文档.转自http://www.mamicode.com/info-detail-507676.html 随机抽样 (numpy.random) 简单的随机数据 rand(d0, d1, ..., dn) 随机值 >>> np.random.rand(3,2) array([[ 0.14022471, 0.96360618], #random [ 0.37601032, 0.25528411], #random [ 0.49313049, 0.94909878]]) #ran

[笔记]numpy中的tile与kron的用法

numpy中提供了不少数学中矩阵的运算.构造函数. 闭上眼睛想一想,发现其中常用的也就是那么几个:cos, sin, mean, dot, max,min, outer,argsort,ones,zeros,arrange,reshape,fft---等. 想了半天,可以也不超过30个左右常用函数. 但是numpy的确博大精深:查看文档发现有大概586个方法或属性! 今天,我就记录一下numpy中,矩阵运算tile与kron的用处之一吧. 确切的讲,是谈论的在向量化运算方面的用处. 记得高等代数

简述JS中 appy 和 call 的详细用法

Apply 和 Call 两个老生常言的方法,使用过程的一些细节还是有很大的异同,具体使用情况可以参照下面例子详细回顾一下. 区别和详解:js中call()和apply()的用法 1.关于call()和apply()的疑点: apply和call的区别在哪里 什么情况下用apply,什么情况下用call apply的其他巧妙用法(一般在什么情况下可以使用apply) 2.语法和参数分析: apply和call都能继承另外一个对象的方法和属性:Function.apply(obj,args)方法能

Input标签中Type的类型及详细用法

转载▼     Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍. 1,type=text 输入类型是text,这是我们见的最多也是使用最多的,比如登陆输入用户名,注册输入电话号码,电子邮件,家庭住址等等.当然这也是Input的默认类型. 参数name:同样是表示的该文本输入框名称. 参数size:输入框的长度大小. 参数maxlength:输入框中允许输入字符的最大数. 参数value:输入框中的默认值

浅谈PHP中pack、unpack的详细用法

转自:https://segmentfault.com/a/1190000008305573 PHP中有两个函数pack和unpack,很多PHPer在实际项目中从来没有使用过,甚至也不知道这两个方法是用来干嘛的.这篇文章来为大家介绍一下它俩到底是用来干啥的. pack string pack ( string $format [, mixed $args [, mixed $... ]] ) 该函数用来将对应的参数($args)打包成二进制字符串. 其中第一个参数$format,有如下选项(可

numpy中一维数组增加维度,None,np.newaxis

#一维数组转化成二维的方法: np.random.seed(101) arr=np.random.randint(1,4,size=6) print("\n原数组:\n",arr) print("\n如何把一维数组转换成二维的:") print("arr[:,None]:\n",arr[:,None]) print("") print("arr[:,np.newaxis]:\n",arr[:,np.newa