numpy.random.randn()与rand()的区别

1、numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中。 
numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值。 
numpy.random.rand(d0, d1, …, dn)的随机样本位于[0, 1)中。 
代码:

import numpy as np 

arr1 = np.random.randn(2,4)
print(arr1)
print('******************************************************************')
arr2 = np.random.rand(2,4)
print(arr2)

结果

在使用Python进行数据处理时,往往需要用到大量的随机数据,那如何构造这么多数据呢?Python的第三方库numpy库中提供了random函数来实现这个功能。 
本文将根据官方文档以及其他博友的博客一起来谈论常见的random函数以及使用 
官方文档

2、首先说下numpy.random.seed()与numpy.random.RandomState()这两个在数据处理中比较常用的函数,两者实现的作用是一样的,都是使每次随机生成数一样,具体可见下图

numpy.random.seed()

random.RandomState()

1.numpy.random.rand() 
官方文档中给出的用法是:numpy.random.rand(d0,d1,…dn) 
以给定的形状创建一个数组,并在数组中加入在[0,1]之间均匀分布的随机样本。 
用法及实现: 
这里写图片描述

2.numpy.random.randn() 
官方文档中给出的用法是:numpy.random.rand(d0,d1,…dn) 
以给定的形状创建一个数组,数组元素来符合标准正态分布N(0,1) 
若要获得一般正态分布这里写图片描述则可用sigma * np.random.randn(…) + mu进行表示 
用法及实现: 
这里写图片描述

3.numpy.random.randint() 
官方文档中给出的用法是:numpy.random.randint(low,high=None,size=None,dtype) 
生成在半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low) 
用法及实现 
high=None的情形 
这里写图片描述

high≠None 
这里写图片描述

4.numpy.random.random_integers() 
官方文档中给出的用法是: 
numpy.random.random_integers(low,high=None,size=None) 
生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low] 
用法及实现 
high=None的情形 
这里写图片描述

high≠None的情形 
这里写图片描述

此外,若要将【a,b】区间分成N等分,也可以用此函数实现 
a+(b-a)*(numpy.random.random_integers(N)-1)/(N-1)

5.numpy.random_sanmple() 
官方文档中给出的用法是: 
numpy.random.random_sample(size=None) 
以给定形状返回[0,1)之间的随机浮点数 
用法及实现 
这里写图片描述

其他函数,numpy.random.random() ;numpy.random.ranf() 
numpy.random.sample()用法及实现都与它相同

6.numpy.random.choice() 
官方文档中给出的用法: 
numpy.random.choice(a,size=None,replace=True,p=None) 
若a为数组,则从a中选取元素;若a为单个int类型数,则选取range(a)中的数 
replace是bool类型,为True,则选取的元素会出现重复;反之不会出现重复 
p为数组,里面存放选到每个数的可能性,即概率 
用法及实现 
这里写图片描述

[[-1.03021018  0.5197033   0.52117459 -0.70102661]
 [ 0.98268569  1.21940697 -1.095241   -0.38161758]]
******************************************************************
[[ 0.19947349  0.05282713  0.56704222  0.45479972]
 [ 0.28827103  0.1643551   0.30486786  0.56386943]]
  • 20
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: numpy.random.randn是一个用于生成随机数的函数,返回的是一个由浮点数组成的指定形状的数组,这些浮点数是从标准正态分布中随机抽样得到的。 具体来说,numpy.random.randn函数的语法如下: ```python numpy.random.randn(d0, d1, ..., dn) ``` 其中,d0, d1, ..., dn 是表示生成数组形状的参数,可以是整数或者整数元组。函数会返回一个形状为 (d0, d1, ..., dn) 的数组,其中的元素是从标准正态分布中抽样得到的浮点数。 例如,下面的代码生成了一个形状为 (2, 3) 的数组,其中的元素是从标准正态分布中抽样得到的: ```python import numpy as np arr = np.random.randn(2, 3) print(arr) ``` 输出: ``` [[-1.33307884 0.8263848 0.05024193] [-1.04358602 0.497614 1.09213628]] ``` ### 回答2: numpy.random.randn是numpy中的一个函数,用于生成服从标准正态分布(平均值为0,标准差为1)的随机数。它可以根据指定的大小来生成一个指定形状的数组。下面是对numpy.random.randn函数的详细解释。 首先,numpyPython中的一个重要的科学计算库,提供了很多用于数组操作和数学计算的功能。而numpy.random模块是numpy库中的一个子模块,提供了伪随机数生成器的功能。其中,randn函数用于生成服从标准正态分布的随机数序列。 语法格式:numpy.random.randn(d0, d1, ..., dn),其中d0, d1, ..., dn表示生成的随机数序列的维度,可以是整数或整数序列。 参数说明:d0, d1, ..., dn用于指定生成随机数序列的维度,如果没有指定,则默认为一个随机数。 返回值:返回一个形状为(d0, d1, ..., dn)的数组,数组中的元素服从标准正态分布。 例如,生成一个形状为(2, 3)的二维数组,其中的元素服从标准正态分布,可以使用以下代码: import numpy as np arr = np.random.randn(2, 3) print(arr) 运行结果可能为: [[-0.24616705 0.25069005 1.41882856] [ 1.06692249 0.20792445 0.10625843]] 在生成的数组中,每个元素都是一个服从标准正态分布的随机数。 总之,numpy.random.randn函数是用于生成服从标准正态分布的随机数序列的。它可以根据指定的大小来生成一个指定形状的数组,提供了强大的随机数生成功能,在数据科学和工程计算中常被使用。 ### 回答3: numpy.random.randn是numpy库中用于生成符合标准正态分布(均值为0,标准差为1)的随机数的函数。该函数的参数是一个或多个整数,用于指定返回随机数的维度,返回值是一个具有指定维度的numpy数组。 使用方法如下: 1. 首先,需要导入numpy库:import numpy as np 2. 然后,可以使用np.random.randn来生成随机数。 下面是一个简单的例子,生成一个3x3的随机数组: import numpy as np rand_arr = np.random.randn(3, 3) print(rand_arr) 执行以上代码,可能得到的输出结果类似于: [[-0.28790072 -1.30127789 0.28642234] [ 0.30540302 -0.41940331 0.02838139] [-1.03656423 0.12807012 -0.20615022]] 可以看到,生成的随机数符合标准正态分布。如果需要生成其他均值和方差的正态分布随机数,可以使用numpy.random.normal函数。 总之,numpy.random.randn函数是一个方便生成符合标准正态分布随机数的函数,可以根据需要指定维度生成相应的随机数数组。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值