numpy.random.seed()的使用实例解析
作者:linzch3 发布时间:2023-01-04 07:11:26
这个函数的使用方法,已经有前辈讲解过了,只是自己在测试的时候有一些思考,所以便写了这篇博客。下面是前辈文章的原话:
seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
编写如下第一份代码:
from numpy import *
num=0
while(num<5):
random.seed(5)
print(random.random())
num+=1
运行结果为:
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
可以看到,每次运行的结果都是一样的
修改代码,如下为第二份代码:
from numpy import *
num=0
random.seed(5)
while(num<5):
print(random.random())
num+=1
运行结果为:
0.22199317108973948
0.8707323061773764
0.20671915533942642
0.9186109079379216
0.48841118879482914
可以看到,和上一份代码的运行结果不同。这里每次的输出结果都是不一样的。这也就提醒了我们在以后编写代码的时候要明白一点:random.seed(something)只能是一次有效。其实仔细想想也很自然,如果不是一次有效,比如说是一直有效,那岂不是会影响到后续的代码中随机数的选取?
这次测试的代码比较可以说是很简单的,但是却暴露了我的一个思维上的漏洞:在这次测试中我虽然明白了:
seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
这段话的意思,但是我却先入为主地认为第二份代码的结果应和第一份代码中的一致。而通过反面思考,假设这个函数使用一次后便是一直有效的,那么每次生成的随即数都会相同,但是这样岂不是会影响到后续的代码中随机数的选取?
所以,以后学新的东西的时候,都要问自己傻问题,不断地去测试自己的想法以达到更深的理解。
故对于该函数的使用,可总结为:
seed( ) 用于指定随机数生成时所用算法开始的整数值。
1.如果使用相同的seed( )值,则每次生成的随即数都相同;
2.如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
3.设置的seed()值仅一次有效
来源:http://blog.csdn.net/linzch3/article/details/58220569
猜你喜欢
- 目录引言 操作多线程/多进程1、创建线程池2、submit3、map4
- 昨日内容:ORM高级查询-filterid=3id__gt=3id__lt=3id__lte=3id__gte=3-in /not in.f
- 需求描述我们需要登录考勤系统(网页端,非手机端)进行签到,如果不想每天都早早起来打卡签到,就可以通过写程序实现这一功能。业务梳理通过长时间的
- 在有些情况下,利用try…except来捕捉异常可以起到代替if…else的作用。比如在判断一个链表是否存在环的leetcode题目中,初始
- 微信更新后出来了一块比较火的小游戏,要是一款不涉及到排行的游戏,可能 没人去关注这款游戏。最开自己一直苦练技术,想在微信排行上面装一装,练了
- 我目标文件夹下有一大批图片,我要把它转变为指定尺寸大小的图片,用pthon和opencv实现的。以上为原图片。import cv2impor
- 项目:基于Pymysql的专家随机抽取系统引入库函数:>>> import treelib>>> fro
- import matplotlib.pyplot as pltimport jiebafrom wordcloud import wordc
- 如下所示:# Seed random number generatornp.random.seed(42)# Compute mean no
- 代码如下:<% dim objconn,connstr Set objconn =&
- python使用ctypes模块调用windows api GetVersionEx获取当前系统版本,没有使用python32#!c:/py
- Flask-Admin是一个功能齐全、简单易用的Flask扩展,让你可以为Flask应用程序增加管理界面。它受django-ad
- 第一步:python解释器,到网上下载安装下就行。网址:https://www.python.org/downloads/windows/值
- 本文实例讲述了原生JS实现Ajax通过POST方式与PHP进行交互的方法。分享给大家供大家参考,具体如下:一、代码conn.php<?
- 上图代码# -*- coding: utf-8 -*-"""Created on Sun Jun 18 20:
- 前言:学过C语言肯定接触过排序问题,我们最常用的也就是冒泡排序、选择排序、插入排序……等等,同样
- 为大家提供了两种有效PyCharm激活方法,第一种PyCharm激活方法是直接输入激活码,一般PyCharm激活使用的人多了会被官方封,所以
- 最近在研究python调度框架APScheduler使用的路上,那么今天也算个学习笔记吧!# coding=utf-8""
- 一段这样的JavaScript代码,猜猜结果如何?var i = 0, m =
- 打印整数16进制num=10print('%#x'%num)打印字符串中的16进制arr='12342535'