NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python Numpy random.choice() 数据分布

1、什么是数据分布(Data Distribution)?

数据分发是所有可能值以及每个值出现频率的列表。

当使用统计和数据科学时,此类列表非常重要。

random模块提供了返回随机生成的数据分布的方法。

2、随机分布

随机分布是一组随机数,遵循一定的概率密度函数。

概率密度函数:描述连续概率的函数。 即数组中所有值的概率。

我们可以使用random模块的choice()方法基于定义的概率生成随机数。

choice()方法允许我们指定每个值的概率。

概率由介于0和1之间的数字设置,其中0表示永远不会出现该值,而1表示永远会出现该值。

例如:

生成包含100个值的一维数组,其中每个值必须分别为3、5、7或9。

将值设为3的概率设置为0.1

将值设为5的概率设置为0.3 

将该值设为7的概率设置为0.6

将该值设为9的概率设置为0

from numpy import random

x = random.choice([3, 5, 7, 9], p=[0.1, 0.3, 0.6, 0.0], size=(100))

print(x)

所有概率数之和应为1。

即使您运行上述示例100次,9的值也不会出现。

可以通过在size参数中指定形状来返回任何形状和大小的数组。

例如:

与上面相同的示例,但是返回具有3行的二维数组,每行包含5个值。

from numpy import random

x = random.choice([3, 5, 7, 9], p=[0.1, 0.3, 0.6, 0.0], size=(3, 5))

print(x)

推荐文档