python均匀分布
A. 如何在python中实现这五类强大的概率分布
R编程语言已经成为统计分析中的事实标准。但在这篇文章中,我将告诉你在Python中实现统计学概念会是如此容易。我要使用Python实现一些离散和连续的概率分布。虽然我不会讨论这些分布的数学细节,但我会以链接的方式给你一些学习这些统计学概念的好资料。在讨论这些概率分布之前,我想简单说说什么是随机变量(random variable)。随机变量是对一次试验结果的量化。
举个例子,一个表示抛硬币结果的随机变量可以表示成
Python
1
2
X = {1 如果正面朝上,
2 如果反面朝上}
随机变量是一个变量,它取值于一组可能的值(离散或连续的),并服从某种随机性。随机变量的每个可能取值的都与一个概率相关联。随机变量的所有可能取值和与之相关联的概率就被称为概率分布(probability distributrion)。
我鼓励大家仔细研究一下scipy.stats模块。
概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布。
离散概率分布也称为概率质量函数(probability mass function)。离散概率分布的例子有伯努利分布(Bernoulli distribution)、二项分布(binomial distribution)、泊松分布(Poisson distribution)和几何分布(geometric distribution)等。
连续概率分布也称为概率密度函数(probability density function),它们是具有连续取值(例如一条实线上的值)的函数。正态分布(normal distribution)、指数分布(exponential distribution)和β分布(beta distribution)等都属于连续概率分布。
若想了解更多关于离散和连续随机变量的知识,你可以观看可汗学院关于概率分布的视频。
二项分布(Binomial Distribution)
服从二项分布的随机变量X表示在n个独立的是/非试验中成功的次数,其中每次试验的成功概率为p。
E(X) =np, Var(X) =np(1−p)
如果你想知道每个函数的原理,你可以在IPython笔记本中使用help file命令。E(X)表示分布的期望或平均值。
键入stats.binom?了解二项分布函数binom的更多信息。
二项分布的例子:抛掷10次硬币,恰好两次正面朝上的概率是多少?
假设在该试验中正面朝上的概率为0.3,这意味着平均来说,我们可以期待有3次是硬币正面朝上的。我定义掷硬币的所有可能结果为k = np.arange(0,11):你可能观测到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf计算每次观测的概率质量函数。它返回一个含有11个元素的列表(list),这些元素表示与每个观测相关联的概率值。
结语(Conclusion)
概率分布就像盖房子的蓝图,而随机变量是对试验事件的总结。我建议你去看看哈佛大学数据科学课程的讲座,Joe Blitzstein教授给了一份摘要,包含了你所需要了解的关于统计模型和分布的全部。
B. python random随机数、numpy.random随机数
在科研工作中,我们将分享Python和numpy.random模块中随机数的生成方法。以下是关于这两者的详细介绍。
Python中的random模块用于生成各种类型的随机数。首先导入random,然后可以使用random.random()生成0到1之间的浮点数,uniform(a, b)用于生成[a, b]范围内的随机数,而randint(a, b)则返回[a, b]范围内的整数。random.randrange函数则可以从指定序列中随机选取一个数,random.choice则从给定序列中随机抽取一个元素。此外,random模块还提供了shuffle和sample函数用于打乱列表和随机切片。
numpy.random模块在生成随机数时提供更丰富的功能。导入numpy模块后,可以使用rand(d0, d1, ..., dn)生成均匀分布的n维随机数,randn则生成标准正态分布的随机数。np.random.randint生成随机整数,参数包括最小值、最大值、数据个数和数据类型。np.random.random生成0到1的随机数,而choice函数则用于从给定数据集中进行随机选择。
总的来说,random和numpy.random模块在科研工作中是生成随机数的有力工具,适用于不同的应用场景。