numpy中的random模块包含了很多方法可以用来产生随机数,这篇文章将对random中的一些常用方法做一个总结。

1、numpy.random.rand(d0, d1, ..., dn)

作用:产生一个给定形状的数组(其实应该是ndarray对象或者是一个单值),数组中的值服从[0, 1)之间的均匀分布

参数:d0, d, ..., dn : int,可选。如果没有参数则返回一个float型的随机数,该随机数服从[0, 1)之间的均匀分布。

返回值:ndarray对象或者一个float型的值

例子

# [0, 1)之间均匀分布的随机数,3行2列
a = np.random.rand(3, 2)
print(a)
# 不提供形状
b = np.random.rand()
print(b)

输出:

[[0.26054323 0.28184468]
[0.7783674 0.71733674]
[0.90302256 0.49303252]]
0.6022098740124009

2、numpy.random.uniform(low=0.0, high=1.0, size=None)

作用:返回一个在区间[low, high)中均匀分布的数组,size指定形状。

参数

low, high:float型或者float型的类数组对象。指定抽样区间为[low, high),low的默认值为0.0,hign的默认值为1.0

size:int型或int型元组。指定形状,如果不提供size,则返回一个服从该分布的随机数。

例子

# 在[1, 10)之间均匀抽样,数组形状为3行2列
a = np.random.uniform(1, 10, (3, 2))
print(a)
# 不提供size
b = np.random.uniform(1, 10)
print(b)

输出:

[[5.16545387 6.3769087 ]
[9.98964899 7.88833885]
[1.37173855 4.19855075]]
3.899250175275188

3、numpy.random.randn(d0, d1, ..., dn)

作用:返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。

参数:d0, d, ..., dn : int,可选。如果没有参数,则返回一个服从标准正态分布的float型随机数。

返回值:ndarray对象或者float

例子

# 3行2列
a = np.random.randn(3, 2)
print(a)
# 不提供形状
b = np.random.randn()
print(b)

输出:

[[-1.46605527  0.35434705]
[ 0.43408199 0.02689309]
[ 0.48041554 1.62665755]]
-0.6291254375915813

4、numpy.random.normal(loc=0.0, scale=1.0, size=None)

作用:返回一个由size指定形状的数组,数组中的值服从 \(\mu=loc, \sigma=scale\) 的正态分布

参数

loc : float型或者float型的类数组对象,指定均值 \(\mu\)

scale : float型或者float型的类数组对象,指定标准差 \(\sigma\)

size : int型或者int型的元组,指定了数组的形状。如果不提供size,且loc和scale为标量(不是类数组对象),则返回一个服从该分布的随机数。

输出:ndarray对象或者一个标量

例子

# 标准正态分布,3行2列
a = np.random.normal(0, 1, (3, 2))
print(a)
# 均值为1,标准差为3
b = np.random.normal(1, 3)
print(b)

输出:

[[ 0.34912031 -0.08757564]
[-0.99753101 0.37441719]
[ 2.68072286 -1.03663963]]
5.770831320998463

5、numpy.random.randint(low, high=None, size=None, dtype='l')

作用:返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。

参数

low, high:int型,指定抽样区间[low, high)

size:int型或int型的元组,指定形状

dypte:可选参数,指定数据类型,比如int,int64等,默认是np.int

返回值:如果指定了size,则返回一个int型的ndarray对象,否则返回一个服从该分布的int型随机数。

例子

# 在[1, 10)之间离散均匀抽样,数组形状为3行2列
a = np.random.randint(1, 10, (3, 2))
print(a)
# 不提供size
b = np.random.randint(1, 10)
print(b)
# 指定dtype
c = np.random.randint(1, 10, dtype=np.int64)
print(c)
type(c)

输出:

[[3 1]
[3 3]
[5 8]]
6
2
numpy.int64

6、numpy.random.random(size=None)

作用:返回从[0, 1)之间均匀抽样的数组,size指定形状。

参数

size:int型或int型的元组,如果不提供则返回一个服从该分布的随机数

返回值:float型或者float型的ndarray对象

例子

# [0, 1)之间的均匀抽样,3行2列
a = np.random.random((3, 2))
print(a)
# 不指定size
b = np.random.random()
print(b)

输出:

[[0.80136714 0.63129059]
[0.04556679 0.04433006]
[0.09643599 0.53312761]]
0.32828505898057136

使用numpy产生随机数的更多方法可以参考官方文档

使用numpy产生随机数的更多相关文章

  1. numpy生成随机数

    如果你想说,我不想知道里面的逻辑和实现方法,只想要python生成随机数的代码,请移步本文末尾,最简单的demo帮你快速获取实现方法. 先开始背景故事说明: 在数据分析中,数据的获取是第一步,nump ...

  2. 基于numpy的随机数构造

    class numpy.random.RandomState(seed=None) RandomState 是一个基于Mersenne Twister算法的伪随机数生成类 RandomState 包含 ...

  3. 转 载python数据分析(1)-numpy产生随机数

    转自:http://blog.csdn.net/jinxiaonian11/article/details/53143141 在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常 ...

  4. NumPy基础操作(3)——代数运算和随机数

    NumPy基础操作(3)--代数运算和随机数 (注:记得在文件开头导入import numpy as np) 目录: NumPy在矩阵运算中的应用 常用矩阵运算函数介绍 编程实现 利用NumPy生成随 ...

  5. 【转载】python 模块 - random生成随机数模块

    随机数种子 要每次产生随机数相同就要设置种子,相同种子数的Random对象,相同次数生成的随机数字是完全相同的: random.seed(1) 这样random.randint(0,6, (4,5)) ...

  6. python之numpy库[2]

    python-numpy csv文件的写入和存取 写入csv文件 CSV (Comma‐Separated Value, 逗号分隔值),是一种常见的文件格式,用来存储批量数据. 写入csv文件 np. ...

  7. [python]-数据科学库Numpy学习

    一.Numpy简介: Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针.这样为了保存一个简单的[1,2,3],需要有3 ...

  8. 数据分析与展示——NumPy数据存取与函数

    NumPy库入门 NumPy数据存取和函数 数据的CSV文件存取 CSV文件 CSV(Comma-Separated Value,逗号分隔值)是一种常见的文件格式,用来存储批量数据. np.savet ...

  9. 第一周——数据分析之表示 —— Numpy 数据存取与函数

    数据的CSV文件的存取 CSV文件:CSV (Comma‐Separated Value, 逗号分隔值) CSV是一种常见的文件格式,用来存储批量数据 np.savetxt(frame, array, ...

随机推荐

  1. JavaScript之表格操作(二)创建表格病填充表格数据

    //创建表格 var tableOptions = { way: "insertBefore", //insertBefore,append positionId: "d ...

  2. POJ3304 Segments 【线段直线相交】

    题意: 给出n条线段两个端点的坐标,问所有线段投影到一条直线上,如果这些所有投影至少相交于一点就输出Yes!,否则输出No!. 思路: 计算几何.这道题要思考到两点: 1:把问题转化为是否存在一条直线 ...

  3. TIdHTTP get参数带中文解决方法--请求报文

    Post 看起来稍微复杂先,暂不讨论.post 目前按照一般方法有中文名也可以. 拼接时:pointname=九记餐厅&begintime=2017-03-01 00:00:00& 有 ...

  4. 公共模块定义/草案(Common Module Definition / draft - CMD草案)

    This specification addresses how modules should be written in order to be interoperable in browser-b ...

  5. Tensorflow datasets.shuffle repeat batch方法

    机器学习中数据读取是很重要的一个环节,TensorFlow也提供了很多实用的方法,为了避免以后时间久了又忘记,所以写下笔记以备日后查看. 最普通的正常情况 首先我们看看最普通的情况: # 创建0-10 ...

  6. 2017-2018-2 20155303『网络对抗技术』Exp8:Web基础

    2017-2018-2 『网络对抗技术』Exp8:Web基础 --------CONTENTS-------- 一.原理与实践说明 1.实践具体要求 2.基础问题回答 二.实践过程记录 1.Web前端 ...

  7. [Shell]获取IP地址

    ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6- ifconfig eth1 | grep &quo ...

  8. openstack swift节点安装手册2-创建rings

    以下步骤需要在controller节点上进行操作: 切换到/etc/swift目录下进行如下操作: 一.创建account ring 1.创建account.builder文件 swift-ring- ...

  9. [bzoj3123][洛谷P3302] [SDOI2013]森林(树上主席树+启发式合并)

    传送门 突然发现好像没有那么难……https://blog.csdn.net/stone41123/article/details/78167288 首先有两个操作,一个查询,一个连接 查询的话,直接 ...

  10. oracle 命令行

    背景 看到当初竟然记录了命令行,想想自己用了多久才知道了命令行,好像有几年了吧.当时还记得买了两本oracle9的管理书籍,就跟见了九阴真经一样,从头到尾熟悉了好几遍,不过也大部分忘了交给老师了.以下 ...