numpy 产生随机数的几种方法
作者:智能学习者 发布时间:2021-08-28 02:33:54
在矩阵应用的过程中,经常需要使用随机数,那么怎么使用numpy 产生随机数呢 ,为此专门做一个总结。
random模块用于生成随机数,下面是一些常用的函数用法:
numpy.random.seed(n) 其中n为任意指定
当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数
numpy.random.seed(0)
np.random.seed(0)
a = np.random.rand(4)
a
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])
主要介绍了生成符合均匀分布,正态分布等数组和随机选取数以及打乱数组顺序的方法。
1.np.random.rand 生成一个0到1之间的均匀分布
import numpy as np
a = np.random.rand(2,3,4)
print(a,a.shape)
[[[0.18000344 0.03724064 0.15040061 0.93007827]
[0.59423019 0.35439936 0.49193457 0.37633185]
[0.83924196 0.4908405 0.49387427 0.98718216]][[0.20072849 0.90163245 0.36710883 0.56668257]
[0.61402791 0.46602958 0.56086072 0.83099671]
[0.85196098 0.62774727 0.62826083 0.41739078]]] (2, 3, 4)
2.np.random.randn 返回一个符合标准正态分布的数组。
a = np.random.randn(2,3,4)
print(a,a.shape)
[[[ 0.32062268 0.08867553 -0.83741647 -0.21917891]
[-0.06516898 -1.17123767 2.2403833 -0.77741757]
[ 0.33532261 0.27309929 1.07279005 0.79952468]][[ 0.18503166 0.90777579 -1.52837098 -1.23783753]
[ 0.9327577 1.61876194 0.52191996 0.53451075]
[-1.05485337 1.01472352 0.19376936 0.00278223]]] (2, 3, 4)
3.np.random.randint返回一定范围的一维或者多维整数
numpy.random.randint(low, high=None, size=None, dtype=’l’)
返回随机整数,范围区间为[low,high),包含low,不包含high
size为数组维度,元组形式,如(2,3)#2行3列
high没有填写时,默认生成随机数的范围是[0,low)
dtype指定数据类型,默认int
a = np.random.randint(low=6,high=10,size=(2,3,4),dtype='int')
print(a,a.shape)
[[[8 8 7 8]
[8 8 6 9]
[9 6 7 7]][[7 7 9 8]
[9 6 6 7]
[8 9 7 7]]] (2, 3, 4)
4.np.random.choice从给定的一维数组中随机选择数生成随机数
numpy.random.choice(a, size=None, replace=True, p=None)
a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率
a为整数时,对应的一维数组为np.arange(a)
a = np.random.choice(a = [3,5,6],size=(2,3,4),replace=True,p=[0.1,0.5,0.4])
print(a,a.shape)
[[[5 6 3 5]
[6 5 5 5]
[6 5 6 6]][[5 5 5 3]
[6 5 6 6]
[5 6 5 6]]] (2, 3, 4)
5.np.random.normal(loc=0.0, scale=1.0, size=None),生成符合指定分布的正态分布。
a = np.random.normal(loc=4,scale=6,size=(2,3,4))
print(a)
[[[13.19667529 12.81615262 4.92968455 6.26897512]
[-1.32671449 -7.88477881 1.9125271 4.93809381]
[11.38174408 11.21427909 1.6760391 2.1861835 ]][[-2.29131779 -4.52010762 -6.23762114 15.70465237]
[ 0.94208691 1.37155419 -3.51677216 8.66494213]
[-5.68338709 2.72355832 -1.37279937 6.32141499]]]
6.np.random.random(size=None),生成符合0到1的均匀分布数组。
a = np.random.random((2,3,4))
print(a)
[[[0.19658236 0.36872517 0.82099323 0.09710128]
[0.83794491 0.09609841 0.97645947 0.4686512 ]
[0.97676109 0.60484552 0.73926358 0.03918779]][[0.28280696 0.12019656 0.2961402 0.11872772]
[0.31798318 0.41426299 0.0641475 0.69247212]
[0.56660145 0.26538949 0.52324805 0.09394051]]]
7. np.random.ranf(size=None),生成符合0到1的均匀分布数组。
a = np.random.ranf((10))
a
array([0.82894003, 0.00469548, 0.67781654, 0.27000797, 0.73519402,
0.96218855, 0.24875314, 0.57615733, 0.59204193, 0.57225191])
8.np.random.uniform(low=0.0, high=1.0, size=None),生成符合指定均匀分布的数组
g=np.random.uniform(-1,1,10)#指定均匀分布
print(g)
[ 0.07315842 0.79334259 0.98067789 -0.56620603 0.32615641 -0.47335525
-0.958698 0.51675731 -0.3599657 -0.23307221]
9.np.random.shuffle(x),随机打乱数组顺序
a = np.arange(10)
np.random.shuffle(a)
print(a)
[6 3 4 9 0 8 1 5 2 7]
10. 产生其他分布的函数
binomial() ,二项分布
chisquare(),卡方分布
poisson(),泊松分布
uiform(),均匀分布
normal(),正态分布
来源:https://blog.csdn.net/qq_43790749/article/details/120069276
猜你喜欢
- 文件的存储方式在计算机中,文件是以 二进制的方式保存在磁盘上的文本文件和二进制文件文本文件可以使用文本编辑软件查看本质上还是二进制文件二进制
- 页面中header部分一般位于最上端(有时根据需要也会位于某一侧,不管它在页面中的位置如何,在XHTML代码中它总是优于其它元素先加载),内
- 本文实例讲述了Python socket套接字实现C/S模式远程命令执行功能。分享给大家供大家参考,具体如下:一. 前言要求: 使用pyth
- 概述从今天开始, 小白我将带领大家一起来补充一下 数据库的知识.数据控制语言数据控制语言 (Data Control Language) 是
- 本文实例讲述了JavaScript常用的返回,自动跳转,刷新,关闭语句。分享给大家供大家参考。具体如下:1. Javascript 返回上一
- 今天发现sympy依赖的库mpmath里也有很多数学函数,其中也有在复平面绘制二维图的函数cplot,具体例子如下from mpmath i
- 本文实例讲述了python实现超简单端口转发的方法。分享给大家供大家参考。具体如下:代码非常简单,实现了简单的端口数据转发功能,用于真实环境
- 一,fso.GetFile提取文件相应的 File 对象1,getfile.asp<%whichfile=Serv
- kmp算法KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特
- 七牛云存储的 Python 语言版本 SDK(本文以下称 Python-SDK)是对七牛云存储API协议的一层封装,以提供一套对于 Pyth
- 某些杀毒软件会把正常的asp文件误认为是asp木马文件,而自动删除,影响正常使用。下面方法可能会有效避免被杀毒软件删除把dim t
- linux默认是安装了python,默认是安装python2.6.6,可能安装的版本是不能符合我们需要的python要求的。我们需要重新安装
- 直接上图,图文并茂,相信你很快就知道要干什么。A文件:B文件:可以发现,A文件中“汉字井号”这一列和B文件中“WELL”这一列的属性相同,以
- 上一篇中,我们已经打开了Django自带的用户认证模块,并配置了数据库连接,创建了相应的表,本篇我们将在Django自带的用户认证的基础上,
- 【pytorch官方文档】:https://pytorch.org/docs/stable/generated/torch.nn.AvgPo
- 创建与打开站点启动FrontPage XP,选择菜单“文件/新建”,再单击“网页或站点”命令选项。在“新建网页或站点”任务窗格
- 可视化辅助函数在下面的代码的注释内有大致的操作基本操作与前面的人脸检测的操作相似,增加了可视化的辅助函数import matplotlib.
- 如下所示:from urllib.parse import quoteimport stringurl = r'http://www
- 1. 直接打印错误try:# your codeexcept KeyboardInterrupt:print("quit"
- 最近,大数据工程师Kin Lim Lee在Medium上发表了一篇文章,介绍了8个用于数据清洗的Python代码。数据清洗,是进行数据分析和