numpy.random模块用法总结
作者:JetReily 发布时间:2023-05-11 00:48:19
random模块用于生成随机数,下面看看模块中一些常用函数的用法:
from numpy import random
numpy.random.uniform(low=0.0, high=1.0, size=None)
生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0)
>>> random.uniform()
0.3999807403689315
>>> random.uniform(size=1)
array([0.55950578])
>>> random.uniform(5, 6)
5.293682668235986
>>> random.uniform(5, 6, size=(2,3))
array([[5.82416021, 5.68916836, 5.89708586],
[5.63843125, 5.22963754, 5.4319899 ]])
numpy.random.rand(d0, d1, ..., dn)
生成一个(d0, d1, ..., dn)维的数组,数组的元素取自[0, 1)上的均分布,若没有参数输入,则生成一个数
>>> random.rand()
0.4378166124207712
>>> random.rand(1)
array([0.69845956])
>>> random.rand(3,2)
array([[0.15725424, 0.45786148],
[0.63133098, 0.81789056],
[0.40032941, 0.19108526]])
>>> random.rand(3,2,1)
array([[[0.00404447],
[0.3837963 ]],
[[0.32518355],
[0.82482599]],
[[0.79603205],
[0.19087375]]])
numpy.random.randint(low, high=None, size=None, dtype='I')
生成size个整数,取值区间为[low, high),若没有输入参数high则取值区间为[0, low)
>>> random.randint(8)
5
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
[1, 4, 1]],
[[2, 2, 5],
[7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
[2, 7, 2]],
[[2, 7, 6],
[4, 7, 7]]], dtype=int64)
numpy.random.random_integers(low, high=None, size=None)
生成size个整数,取值区间为[low, high], 若没有输入参数high则取值区间为[1, low],注意这里左右都是闭区间
>>> random.randint(8)
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
[1, 4, 1]],
[[2, 2, 5],
[7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
[2, 7, 2]],
[[2, 7, 6],
[4, 7, 7]]], dtype=int64)
numpy.random.random(size=None)
产生[0.0, 1.0)之间的浮点数
>>> random.random(5)
array([0.94128141, 0.98725499, 0.48435957, 0.90948135, 0.40570882])
>>> random.random()
0.49761416226728084
相同用法:
numpy.random.random_sample
numpy.random.ranf
numpy.random.sample (抽取不重复)
numpy.random.bytes(length)
生成随机字节
>>> random.bytes(1)
b'%'
>>> random.bytes(2)
b'\xd0\xc3'
numpy.random.choice(a, size=None, replace=True, p=None)
从a(数组)中选取size(维度)大小的随机数,replace=True表示可重复抽取,p是a中每个数出现的概率
若a是整数,则a代表的数组是arange(a)
>>> random.choice(5)
3
>>> random.choice([0.2, 0.4])
0.2
>>> random.choice([0.2, 0.4], p=[1, 0])
0.2
>>> random.choice([0.2, 0.4], p=[0, 1])
0.4
>>> random.choice(5, 5)
array([1, 2, 4, 2, 4])
>>> random.choice(5, 5, False)
array([2, 0, 1, 4, 3])
>>> random.choice(100, (2, 3, 5), False)
array([[[43, 81, 48, 2, 8],
[33, 79, 30, 24, 83],
[ 3, 82, 97, 49, 98]],
[[32, 12, 15, 0, 96],
[19, 61, 6, 42, 60],
[ 7, 93, 20, 18, 58]]])
numpy.random.permutation(x)
随机打乱x中的元素。若x是整数,则打乱arange(x),若x是一个数组,则将copy(x)的第一位索引打乱,意思是先复制x,对副本进行打乱处理,打乱只针对数组的第一维
>>> random.permutation(5)
array([1, 2, 3, 0, 4])
>>> random.permutation(5)
array([1, 4, 3, 2, 0])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[4, 5, 6],
[1, 2, 3]])
numpy.random.shuffle(x)
与permutation类似,随机打乱x中的元素。若x是整数,则打乱arange(x). 但是shuffle会对x进行修改
>>> a = arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> random.permutation(a)
array([1, 4, 3, 2, 0])
>>> a
array([0, 1, 2, 3, 4])
>>> random.shuffle(a)
>>> a
array([4, 1, 3, 2, 0])
numpy.random.seed(seed=None)
设置随机生成算法的初始值
其它符合函数分布的随机数函数
numpy.random.beta
numpy.random.binomial
numpy.random.chisquare
numpy.random.dirichlet
numpy.random.exponential
numpy.random.f
numpy.random.gamma
numpy.random.geometric
numpy.random.gumbel
numpy.random.hypergeometric
numpy.random.laplace
numpy.random.logistic
numpy.random.lognormal
numpy.random.logseries
numpy.random.multinomial
numpy.random.multivariate_normal
numpy.random.negative_binomial
numpy.random.noncentral_chisquare
numpy.random.noncentral_f
numpy.random.normal
numpy.random.pareto
numpy.random.poisson
numpy.random.power
numpy.random.randn
numpy.random.rayleigh
numpy.random.standard_cauchy
numpy.random.standard_exponential
numpy.random.standard_gamma
numpy.random.standard_normal
numpy.random.standard_t
numpy.random.triangular
numpy.random.vonmises
numpy.random.wald
numpy.random.weibull
numpy.random.zipf
来源:https://www.cnblogs.com/JetReily/p/9398148.html


猜你喜欢
- 在上一篇Python接口自动化测试系列文章:Python接口自动化浅析登录接口测试实战,主要介绍接口概念、接口用例设计及登录接口测试实战。以
- '*****************************************************************
- 代码如下:<% '=================================================
- 在安装某个包的时候出现如下错误然后按照提示运行python -m pip install --upgrade pip并更新pip后再次运行p
- 1 词频统计1.1 简单词频统计1.导入jieba库并定义文本import jiebatext = "Python是一种高级编程语
- Codeigniter支持缓存技术,以达到最快的速度。尽管CI已经相当高效了,但是网页中的动态内容、主机的内存CPU和数据库读取速度等因素直
- 1、 下载MYSQL5.1.48源码,CMAKE,VS2008 2、 安装CMAKE和VS2008,解压MYSQL5.1.48到D:\mys
- 本文实例讲述了Python基于opencv的图像压缩算法。分享给大家供大家参考,具体如下:插值方法:CV_INTER_NN - 最近邻插值,
- 安装redis并启动下载地址,选择Stable版本下载或者本地下载地址:https://www.jb51.net/softs/504128.
- 本文实例讲述了Python实现读取TXT文件数据并存进内置数据库SQLite3的方法。分享给大家供大家参考,具体如下:当TXT文件太大,计算
- 前言深度学习领域,常常用python写代码,而且是建立在一些开源框架之上,如pytorch。在实际的项目部署中,也有用conda环境和pyt
- 一、安装PILPIL是Python Imaging Library简称,用于处理图片。PIL中已经有图片高斯模糊处理类,但有个bug(目前最
- 注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出
- 熟悉css的开发者一定知道图像替换技术,也深知它的意义,Dave Shea 曾在他的一篇文章对此做了详细的总结,参看 Dave Shea’s
- LearningjQuery.com 博客帖子列表的左边有一个很酷的日期,如图:从图中我们看到,“2009”垂直排列在右侧。用Firebug
- SWFUpload上传组件,最初由Vinterwebb.se开发,组件主体由Flash与JavaScript整合而成,主要致力解决多文件、大
- 一:关于MySQL5 MySQL5系列数据库是MySQL的最新版本的数据库,比较流行的发行版是mysql-5.0.18。MySQL 英文官方
- 前言matplotlib画图例默认的位置是在图中的各个角落,但有时图例位置会遮挡住图像而不符合我们的需求,需要对图例位置进行调整。代码如下:
- 首先初始化页面$(function(){ $('#archives-table').bootstrapTable
- Mysql迁移历史数据记录一下工作中由于业务需要以及系统的数据库模型变更,导致需要做一下历史数据迁移的解决办法需求陈述一共涉及到三张表,分别