博客
关于我
Python中的Numpy库之random中random、rand、randn、randint的用法
阅读量:556 次
发布时间:2019-03-09

本文共 1661 字,大约阅读时间需要 5 分钟。

在Numpy中一切皆矩阵

1、random

首先来看一下它的函数定义,主要看他的接受的参数,(虽然在函数体里什么都没有,但是照样能用它产生数据,这里由于水平原因,不再继续深入探究)

def random(size=None): # real signature unknown; restored from __doc__    """    random(size=None)    		返回值,这里没有遵循什么分布规律,只是简单的生成0-1的浮点数,且左闭右开            Return random floats in the half-open interval [0.0, 1.0). Alias for            `random_sample` to ease forward-porting to the new random API.    """    pass

我们分两种情况来探究,这个size参数。

情况一

直接给参数传一个整数,即size=3

print(np.random.random(3))

返回值:是一个一维数组,注意他不是列表

[0.20367297 0.55265547 0.72267248]

情况二

给参数传一个元组,即size=(3, 3)

print(np.random.random((3, 3)))

返回值:是一个二维数组

[[8.88325725e-01 7.05841883e-01 1.38825064e-01]

[4.89045258e-01 7.25233743e-01 8.95902437e-02]
[3.62093551e-01 5.59233974e-01 1.84422779e-04]]

说明:①情况一中的整数也可以写成元组,只不过我们为了省事,不这么写;②元组也可以换成列表类型

2、randint

还是主要看前三个参数,其中size和上面的一样,我们分别来探究三个参数对返回值的影响。最后一个是返回值类型,在理不做讨论。

这个家伙也是,函数体里啥都没有
在这里插入图片描述

情况一:

只对第一个参数赋值,后面两个有默认值,我们这里先不管他们。

print(np.random.randint(10))

返回值:仅仅得到一个整数,且得到的整数总是小于lower

9

情况二:

对前两个参数赋值,注意high>lower,即第二个参数要大于第一个参数的值

print(np.random.randint(10, 23))

返回值:仅仅得到一个整数,得到的整数总是在lower和high之间

17

情况三:

三个参数都赋值

print(np.random.randint(10, 22, (3, 2)))

[[18 11]

[18 16]
[10 17]]

说明:①lower和high均可以为浮点数;②其实只对lower赋值,相当于lower=0,high=所赋值的lower;③可以只对lower和size赋值

2、randn和rand

这两个放一起说,因为他们的参数一样,只不过生成的随机数的分布不同。

还是老规矩,先看函数定义:

rand

在这里插入图片描述

randn

在这里插入图片描述

看到了吧,他们是何其相似,连注解都一样。

下面来说说,dn是什么,其实,最关键的还是对符号的理解,它相当于把一个元组数据拆分成一个个具体的数值。

来看两个例子,了解一下他的参数返回的值,就明白了。

情况一:
print(np.random.rand(2))

返回结果:

[0.57531079 0.67555903]

情况二:
print(np.random.rand(2, 3))

返回结果:

[[0.61497674 0.199005 0.4309077 ]

[0.02964575 0.70530525 0.26741078]]

再来说说他们的分布,

rand是uniform分布。详细解释,看

在这里插入图片描述

randn是正态分布,这个就不放图了,大家都懂。

怎么区分他们的分布,带n的是正态分布。

转载地址:http://lugsz.baihongyu.com/

你可能感兴趣的文章
MySQL 基础模块的面试题总结
查看>>
MySQL 备份 Xtrabackup
查看>>
mYSQL 外键约束
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>