numpy中生成随机数的几种常用函数

举报
yd_226342373 发表于 2021/05/20 02:03:17 2021/05/20
【摘要】 1、使用numpy生成随机数的几种方式 1)生成指定形状的0-1之间的随机数:np.random.random()和np.random.rand() array1 = np.random.random((3)) display(array1) # ----------------------------------- array2 = np.random.ran...
1、使用numpy生成随机数的几种方式

在这里插入图片描述

1)生成指定形状的0-1之间的随机数:np.random.random()和np.random.rand()
array1 = np.random.random((3))
display(array1)
# -----------------------------------
array2 = np.random.random((3,4))
display(array2)
# -----------------------------------
array3 = np.random.rand(3)
display(array3)
# -----------------------------------
array4 = np.random.rand(2,3)
display(array4)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

① 操作如下
在这里插入图片描述
在这里插入图片描述
② 区别如下
在这里插入图片描述

2)生成指定数值范围内的随机整数:np.random.randint()

在这里插入图片描述
① 操作如下

array9 = np.random.randint(low=1, high=10, size=6, dtype=np.int32)
display(array9)
# ---------------------------------------------------------
array10 = np.random.randint(low=1, high=10, size=(2,3), dtype=np.int64)
display(array10)
# ---------------------------------------------------------
array11 = np.random.randint(low=1, high=10, size=(2,3,4), dtype=np.int32)
display(array11)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

② 结果如下
在这里插入图片描述

3)与正态分布有关的几个随机函数:np.random.randn()和np.random.normal()
  • np.random.randn 生成服从均值为0,标准差为1的标准正态分布随机数;
  • np.random.normal 生成指定均值和标准差的正态分布随机数;
array5 = np.random.randn(3)
display(array5)
# ---------------------------------------------
array6 = np.random.randn(2,3)
display(array6)
# ---------------------------------------------
array7 = np.random.normal(loc=2,scale=0.5,size=6)
display(array7)
# ---------------------------------------------
array8 = np.random.normal(loc=2,scale=0.5,size=6).reshape(2,3)
display(array8)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

① 结果如下
在这里插入图片描述
② 区别如下
在这里插入图片描述

4)均匀分布随机函数:np.random.uniform()
  • 用法:生成指定范围内的服从均匀分布的随机数;
array11 = np.random.uniform(1,10,5)
display(array11)
# ---------------------------------
array12 = np.random.uniform(1,10,(2,3))
display(array12)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

① 结果如下
在这里插入图片描述

5)np.random.seed():按照种子来生成随机数,种子一样,则生成的随机数结果必一致

在这里插入图片描述
① 操作如下

np.random.seed(3)
a = np.random.rand(3)
display(a)
np.random.seed(3)
b = np.random.rand(3)
display(b)
# --------------------------
np.random.seed()
a = np.random.rand(3)
display(a)
np.random.seed()
b = np.random.rand(3)
display(b)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

② 结果如下
在这里插入图片描述

6)np.random.shuffle():打乱数组元素顺序(原地操作数组)
c = np.arange(10)
display(c)
np.random.shuffle(c)
display(c)

  
 
  • 1
  • 2
  • 3
  • 4

① 结果如下
在这里插入图片描述

7)np.random.choice():按照指定概率从指定数组中,生成随机数;

① np.random.choice()函数的用法说明

d = np.random.choice([1,2,3,4], p=[0.1, 0.2, 0.3, 0.4])
display(d)

  
 
  • 1
  • 2

说明:上述函数第一个参数表示的是数组,第二个参数表示的是概率值。上述函数的含义是当进行n多次重复实验的时候,抽取1的概率为0.1,抽取2的概率为0.2,抽取3的概率为0.3,抽取4的概率为0.4。

② 结果如下
在这里插入图片描述
③ 随即进行10000次重复实验,检测每一个数,被抽取到的概率

list1 = [0,0,0,0]
for i in range(100000): f = np.random.choice([1,2,3,4], p=[0.1, 0.2, 0.3, 0.4]) list1[f-1] = list1[f-1] + 1
display(list1)

result_list = [value/sum(list1) for value in list1]
display(result_list)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

④ 结果如下
在这里插入图片描述
⑤ 模拟进行100000次掷硬币重复实验,检测每一面,被抽取到的概率

list1 = [0,0]
for i in range(100000): f = np.random.choice([0,1], p=[0.5,0.5]) list1[f] = list1[f] + 1
display(list1)

result_list = [value/sum(list1) for value in list1]
display(result_list)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

⑥ 结果如下
在这里插入图片描述

文章来源: blog.csdn.net,作者:数据分析与统计学之美,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41261833/article/details/103745009

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。