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 : baobaotql@163.com
# @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 : baobaotql@163.com
# @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时,生成的随机数结果相同。说明该参数指定了一个随机数生成的起始位置。每个参数对应一个位置。
并且在该参数确定后,其后面的随机数的生成顺序也就确定了。所以,随机数种子的参数怎么选择?这个参数只是确定一下随机数的起始位置,可随意分配.
对你有帮助就支付宝请我喝可乐叭~~~
numpy中np.random.seed()的详细用法的更多相关文章
- numpy:np.random.seed()
np.random.seed()函数可以保证生成的随机数具有可预测性. 可以使多次生成的随机数相同 1.如果使用相同的seed( )值,则每次生成的随即数都相同: 2.如果不设置这个值,则系统根据时间 ...
- Numpy中np.random.randn与np.random.rand的区别,及np.mgrid与np.ogrid的理解
np.random.randn是基于标准正态分布产生的随机数,np.random.rand是基于均匀分布产生的随机数,其值在[0,1). np.mgrid 与np.ogrid的理解及区别:np.mgr ...
- 怎么理解np.random.seed()?
在使用numpy时,难免会用到随机数生成器.我一直对np.random.seed(),随机数种子搞不懂.很多博客也就粗略的说,利用随机数种子,每次生成的随机数相同. 我有两个疑惑:1, 利用随机数种子 ...
- np.random.seed()
124.np.random.seed()的作用 陈容喜 关注 2018.01.11 21:36 字数 3 阅读 4460评论 0喜欢 6 今天看到一段代码时遇到了np.random.seed(),搞不 ...
- numpy中np.c_和np.r_
np.r_:按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat() np.c_:按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的mer ...
- python指定概率随机取值 理解np.random.seed()
python指定概率随机取值参考如下: 下面是利用 np.random.choice()指定概率取样的例子: np.random.seed(0) p = np.array([0.1, 0.0, 0.7 ...
- np.random.seed(0)的作用:作用:使得随机数据可预测。
>>>> numpy.random.seed(0) ; numpy.random.rand(4) array([ 0.55, 0.72, 0.6 , 0.54]) > ...
- numpy中np.array()与np.asarray的区别以及.tolist
array 和 asarray 都可以将 结构数据 转化为 ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会. 1.输 ...
- C#Windows窗体中添加了AxWindowsMediaPlayer的详细用法影响键盘操作的问题
最近在写一个飞机大战游戏,但在为游戏背景添加声音的时候,发现添加了AxWindowsMediaPlayer的详细用法音乐控件不能再通过键盘控制飞机的移动了,在网上查了许久,没找到原因,差点就想去找老师 ...
随机推荐
- Jquery的toggle()与trigger()方法
我一直分不清楚toggle()与trigger()两个各自的作用,所以今天抽时间记录一些,以加深印象. 1.toggle() 定义和用法: toggle() 方法切换元素的可见状态.如果被选元素可见, ...
- 05_centos7安装python3
https://www.cnblogs.com/FZfangzheng/p/7588944.html https://www.cnblogs.com/simuhunluo/p/7704765.html ...
- 更好的处理 Python 多工程 import 依赖
话说, 这段时间需要开发一个项目, 新项目对现有的几乎所有项目都有依赖. 豆瓣现存的几个大项目,基本都是围绕豆瓣主站shire的依赖, 也就是说, 其他项目对shire的单项依赖, 这些项目在需要主 ...
- 分页控件Webdiyer.MvcPager
MVC 1.安装控件 install-package Webdiyer.MvcPager 2.Cotroller using System; using System.Collections.Gene ...
- P5043【模板】树同构([BJOI2015]树的同构)
思路:树哈希 提交:1次 题解: 怕不是用的oi-wiki上的公式: \[f_u=size_u\times\sum f_{son_{u,i}}\times Base^{i-1}\] #include& ...
- 自制 yum 源仓库
转自:https://www.cnblogs.com/marility/p/7278374.html 背景 客户服务器为内网机器,centos7系统,且无法与外网连接.需要部署对应的LANMP环境及其 ...
- [python]字典的直接赋值、浅拷贝和深拷贝解析
1.赋值引用 b = a: a 和 b 都指向同一个对象. 2.浅拷贝 b = a.copy(): a 和 b父对象是一个独立的对象,但他们的子对象还是指向统一对象(是引用). 3.深拷贝 b = ...
- 【ElasticSearch+NetCore 第二篇】Nest封装
using Elasticsearch.Net; using Nest; using System; using System.Collections.Generic; using System.Li ...
- git reset 版本回退操作
1 git回退命令 git reset --hard GIT_HEAD GIT_HEAD是你具体要回退的分支: 如图: 注: 查询GIT_HEAD可以通过两个命令:git log 获取未删除 ...
- JQuery 行内编辑(即点即改)
行内编辑 下面是详细的代码: <style> .dian { cursor: pointer; } </style> //这个让鼠标 移动到 span上 的时候 是一个小手 & ...