admin 管理员组

文章数量: 1087135


2024年3月9日发(作者:随机数是怎么产生的)

python randn函数用法

Python语言中有五个常用的随机数发生函数,分别是rand()、randrange()、random()、uniform()和randint()。其中randn()是Python中用于生成标准正态分布的随机数的函数之一。这篇文档将详细介绍randn()函数的用法和本质。

一、randn()函数的基本用法

randn()函数是Python中的随机数发生器函数之一,用于生成标准正态分布随机数。其基本语法如下:

(d0, d1, …, dn)

其中,d0、d1、……dn是整数类型的参数,用于指定返回的随机数的维度。如果没有指定任何参数,则返回一个维度为(1,)的一维数组。

下面是一个简单的例子:

import numpy as np

rnd = () print(rnd)

执行这个程序后,输出结果可能类似于:

0.5548527044845239

这个结果是一个随机生成的标准正态分布的随机数,其值在[-inf, +inf]区间内,但概率密度函数的均值为0,标准差为1。

可以使用shape将输出变成向量:

arr = (2,4) print(arr)

执行上面的代码后,输出结果可能是:

array([[ 1.41729945, -0.61367119, 0.09554064,

-0.2712499 ], [ 0.14228835, 0.6256748 , -1.48894477, -0.28250799]])

这里,我们指定了一个2×4的数组,返回了8个标准正态分布的随机数。

二、randn()函数的本质

理解randn()函数的本质需要了解以下几个概念:

1.标准正态分布

标准正态分布就是均值为0,标准差为1的正态分布,其概率密度函数为:

f(x) = (1/(sqrt(2 * pi))) * exp(-(x^2/2))

其中,pi表示圆周率,exp()表示自然对数的底数e的幂次方。

2.非标准正态分布

非标准正态分布是指均值和标准差都不为1的正态分布,其概率密度函数为:

f(x) = (1/(sigma * sqrt(2 * pi))) * exp(-(x-mu)^2 / (2 * sigma^2))

其中,mu是均值,sigma是标准差。

3.正态分布随机数

正态分布随机数是指符合正态分布的随机数,其数量分布与正态分布的概率密度函数基本一致。

在这个语境下,randn()函数的本质其实就是生成标准正态分布随机数,也就是生成均值为0、标准差为1的随机数。具体实现上,它是通过随机数生成器生成正态分布的随机数,再进行标准化处理实现的。因此,即使没有指定任何参数,操作系统也是会随机生成一个随机数的。

三、randn()函数的应用案例

randn()函数在实际应用中有广泛的应用场景,特别是在数据分析、机器学习和深度学习领域。以下是一些典型的应用案例。

1.模拟实验

在模拟实验中,可以使用randn()函数生成符合标准正态分布或非标准正态分布的随机数,从而获取数据分布的基本特点以及相关数据。下面就是一个用randn()函数模拟判断学生身高的例子:

import numpy as np import as

plt

mu, sigma = 175, 10 s = (mu,

sigma, 1000)

count, bins, ignored = (s, 30,

density=True) (bins, 1/(sigma * (2 *

)) * ( - (bins - mu)**2 / (2 *

sigma**2) ), linewidth=2, color='r')

()

在这个例子中,我们假设学生的平均身高为175cm,标准差为10cm,然后通过randn()函数生成1000个随机数,再基于这些数据生成身高分布的密度图形。

2.神经网络

在神经网络中,因为标准正态分布有很多的优点,比如方差明确、多峰度一致等等,因此常常会使用randn()函数来生成随机数来初始化权值矩阵。

在这里,我们看到randn()函数常常会被用作研究各种深度学习算法的基础。在神经网络上做优化时,如何生成随机数是一个非常基础的任务,在这个任务上随机数发生服务不仅是被用来随机步进神经网络中的节点,还可以被用来初始化权重矩阵等多个任务。

四、总结

randn()函数是Python中一个非常基础的随机数发生生成器。其本质是生成符合标准正态分布的随机数,可以用于在机器学习和深度学习中的优化问题和研究中的实验数据生成中。它可以被用于生成各种不同维度的数组和向量,并且可以通过简单而快捷的语法来实现,比如使用()。


本文标签: 函数 正态分布 生成 学习 标准