文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中random函数用法整理

2023-09-02 07:25

关注

目录

1. random.random(): 返回随机生成的一个浮点数,范围在[0,1)之间

2. random.uniform(a, b): 返回随机生成的一个浮点数,范围在[a, b)之间

3. random.randint(a,b):生成指定范围内的整数 

4. random.randrange([start],stop[,step]):用于从指定范围内按指定基数递增的集合中获取一个随机数。 

5. random.choice():从指定的序列中获取一个随机元素

6. random.shuffle(x[,random]):用于将一个列表中的元素打乱,随机排序

7. random.sample(sequence,k):用于从指定序列中随机获取指定长度的片段,sample()函数不会修改原有序列。

8. np.random.rand(d0, d1, …, dn): 返回一个或一组浮点数,范围在[0, 1)之间

9. np.random.normal(loc=a, scale=b, size=()): 返回满足条件为均值=a, 标准差=b的正态分布(高斯分布)的概率密度随机数

10 np.random.randn(d0, d1, … dn): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数

11. np.random.standard_normal(size=()): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数

12. np.random.randint(a, b, size=(), dtype=int): 返回在范围在[a, b)中的随机整数(含有重复值)

13. random.seed(): 设定随机种子


首先我们需要导入random模块 

1. random.random(): 返回随机生成的一个浮点数,范围在[0,1)之间

import randomprint(random.random())

2. random.uniform(a, b): 返回随机生成的一个浮点数,范围在[a, b)之间

import randomprint(random.uniform(1,5))

3. random.randint(a,b)生成指定范围内的整数 

import randomprint(random.randint(1,10))

4. random.randrange([start],stop[,step]):用于从指定范围内按指定基数递增的集合中获取一个随机数。 

例如random.randrange(10,100,2),结果相当于从 [10,12,14,16...96,98] 序列中获取一个随机数。random.randrange (10,100,2) 的结果上与 random.choice(range(10,100,2)) 等效。

import randomprint(random.randrange(10,22,3))

5. random.choice():从指定的序列中获取一个随机元素

random.choice()从序列中获取一个随机元素,其原型为random.choice(sequence),参数sequence表示一个有序类型。这里说明一下,sequence在Python中不是一种特定的类型,而是泛指序列数据结构列表,元组,字符串都属于sequence

import randomprint(random.choice('学习python'))   # 从字符串中随机取一个字符print(random.choice(['good', 'hello', 'is', 'hi', 'boy']))   # 从list列表中随机取print(random.choice(('str', 'tuple', 'list')))   # 从tuple元组中随机取

6. random.shuffle(x[,random]):用于将一个列表中的元素打乱,随机排序

import randomp=['hehe','xixi','heihei','haha','zhizhi','lala','momo..da']random.shuffle(p)print(p)x = [1, 2, 3, 4, 5]random.shuffle(x)print(x)

7. random.sample(sequence,k):用于从指定序列中随机获取指定长度的片段,sample()函数不会修改原有序列。

import randomlist1=[1,2,3,4,5,6,7,8,9,10]slice=random.sample(list1,5)print(slice)#[8, 3, 5, 9, 10]print(list1)#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]x = random.sample(range(0, 10), 5)print(x, type(x))#[9, 2, 7, 8, 6] Words = "AppleKMedoide"print(random.sample(Words, 3))#['p', 'M', 'A']print(random.sample(Words, 3))#['d', 'i', 'l']

下面的函数需要调用numpy库 

8. np.random.rand(d0, d1, …, dn): 返回一个或一组浮点数,范围在[0, 1)之间

import randomimport numpy as npx = np.random.rand()y = np.random.rand(4)print(x,type(x))#0.09842641570445387 print(y,type(y))#[0.27298291 0.12350038 0.63977128 0.90791234] 

9. np.random.normal(loc=a, scale=b, size=()): 返回满足条件为均值=a, 标准差=b的正态分布(高斯分布)的概率密度随机数

np.random.normal(loc=a, scale=b, size=()) - 返回满足条件为均值=a, 标准差=b的正态分布(高斯分布)的概率密度随机数,size默认为None(返回1个随机数),也可以为int或数组

import randomimport numpy as npx = np.random.normal(10,0.2,2)print(x,type(x))#[9.78391585 9.83981096] y = np.random.normal(10,0.2)print(y,type(y))#9.871187751372984 z = np.random.normal(0,0.1,(2,3))print(z,type(z))#[[-0.07114831 -0.10258022 -0.12686863]# [-0.08988384 -0.00647591  0.06990716]] z = np.random.normal(0,0.1,[2,2])print(z,type(z))#[[ 0.07178268 -0.00226728]# [ 0.06585013 -0.04385656]] 

10 np.random.randn(d0, d1, … dn): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数

np.random.randn(d0, d1, ... dn): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数,

import randomimport numpy as npx = np.random.randn()y = np.random.randn(3)z = np.random.randn(3, 3)print(x, type(x))print(y, type(y))print(z, type(z))

11. np.random.standard_normal(size=()): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数

np.random.standard_normal(): 返回标准正态分布(均值=0,标准差=1)的概率密度随机数, size默认为None(返回1个随机数),也可以为int或数组

import randomimport numpy as npx = np.random.standard_normal()y = np.random.standard_normal(size=(3,3))print(x, type(x))print(y, type(y))

np.random.rand()与np.random.standard_normal()的方法结果相似,都是返回合符标准正态分布的随机浮点数或数组。

12. np.random.randint(a, b, size=(), dtype=int): 返回在范围在[a, b)中的随机整数(含有重复值)

np.random.randint(a, b, sizie=(), dytpe=int) - size默认为None(返回1个随机数),也可以为int或数组

import randomimport numpy as np# 从序列[0, 10)之间返回shape=(5,5)的10个随机整数(包含重复值)x = np.random.randint(0, 10, size=(5, 5))# 从序列[15, 20)之间返回1个随机整数(size默认为None, 则返回1个随机整数)y = np.random.randint(15, 20)print(x, type(x))print(y, type(y))

13. random.seed(): 设定随机种子

在设定随机种子为10之后,random.random()的随机数将被直接设定为:0.5714025946899135

import randomrandom.seed(10)x = random.random()print(x,type(x))random.seed(10)y = random.random()print(y,type(y))z = random.random()print(z,type(z))

random随机数是这样生成的:我们将这套复杂的算法(是叫随机数生成器吧)看成一个黑盒,把我们准备好的种子扔进去,它会返给你两个东西,一个是你想要的随机数,另一个是保证能生成下一个随机数的新的种子,把新的种子放进黑盒,又得到一个新的随机数和一个新的种子,从此在生成随机数的路上越走越远。

我们利用如下代码进行测试:

import numpy as npif __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))        i += 1    i = 0    while i < 2:        print(np.random.randn(1, 5))        i += 1    print(np.random.randn(2, 5))    np.random.seed(0)    print("###################################")    i = 0    while i < 8:        print(np.random.randn(1,5))        i += 1

 

通过该实验我们可以得到以下结论:

 


本文综合参考了如下文章整理: 

python中的random用法_山深✨的博客-CSDN博客_python中random的用法icon-default.png?t=M4ADhttps://blog.csdn.net/shoushou_/article/details/119652905?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165352582116781685333907%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165352582116781685333907&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-119652905-null-null.142^v10^pc_search_result_control_group,157^v12^control&utm_term=python+random&spm=1018.2226.3001.4187python random函数_PandaDou的博客-CSDN博客_python random函数icon-default.png?t=M4ADhttps://blog.csdn.net/m0_37822685/article/details/80363530?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-80363530-blog-119652905.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-80363530-blog-119652905.pc_relevant_paycolumn_v3&utm_relevant_index=1python常用random随机函数汇总,用法详解及函数之间的区别--一图了解python随机函数_若芷兰的博客-CSDN博客_python随机函数icon-default.png?t=M4ADhttps://blog.csdn.net/weixin_45914452/article/details/115264053?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-115264053-blog-110164241.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-115264053-blog-110164241.pc_relevant_default&utm_relevant_index=1随机种子的理解_一个新新的小白的博客-CSDN博客_随机种子icon-default.png?t=M4ADhttps://blog.csdn.net/qq_31511955/article/details/110424334

来源地址:https://blog.csdn.net/m0_62735081/article/details/124978101

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯