Python NumPy 随机
🍦 NumPy库多数需要快速计算的部分主要由C或C++编写,旨在提供一个比传统Python列表快50倍的数组对象,即ndarray。
1 随机数
- 随机数
- 伪随机数:通过一些算法生成的随机数。
- 通过random处理随机数,
randint()
返回随机整数,rand()
返回0-1之间的随机浮点数。 randint()
使用size参数来制作随机数组,randint()
和rand()
都允许指定数组的形状。choice()
允许根据数组值生成随机值,添加一个size参数来指定数组的形状。
- 通过random处理随机数,
- 真随机数:没有规律,不能预见的数,使用物理现象产生,例如投硬币猜测正反面。
- 伪随机数:通过一些算法生成的随机数。
1 |
|
2 数据分布
- 数据分布
- 指在分布式环境中通过合理分布数据,提高数据操作自然并行度,以达到最优执行效率的目的。
- 主要内容是数据位置的存放和高效的数据划分问题,是所有可能值的列表及每个值出现的频率。
- 随机分布:一组遵循一定概率密度函数的随机数。
- 概率密度函数:表示描述连续概率的函数,即数组中所有值的概率。
choice()
方法依据定义的概率生成随机数,允许指定每个值的概率。- 概率由0-1之间的数字设置,0表示该值永远不会出现,1表示始终出现。
- 所有的概率数之和为1,还可以通过size参数指定数组的形状来返回数组。
1 |
|
3 随机排列
- 随机排列
shuffle()
:就地改变数组元素的排序,即对原始数组进行的更改。permutation()
:返回一个重新排列的数组,并保持原始数组不变。
1 |
|
4 Seaborn
- Seaborn
- 代表一个在底层使用Matplotlib绘制图形的库,用于可视化随机分布。
- 打开系统上的命令窗口,输入命令进行安装:
pip install seaborn
。 - 使用前需要先导入Matplotlib模块的pyplot对象,以及安装好的第三方库seaborn模块。
- Distplot代表分布图,将一个数组作为输入并绘制一条与数组中点的分布相对应的曲线。
1 |
|
5 连续分布
- 连续分布
- Continuous Distribution,一个随机变量在其区间内能够取任何数值时所具有的分布。
- 常用分类
- 正态分布:最常用,特点是密度函数以均值为中心对称分布,适用于描述一般经济变量的概率分布。
- 均匀分布:概率论和统计学中叫矩形分布,是对称概率分布,相同长度间隔的分布概率是等可能的。
- 增长分布:也称为逻辑斯蒂分布,具有S形曲线形状。该分布在中心区域变化较快,在两端逐渐平缓。
- 指数分布:用来表示独立随机事件发生的时间间隔,重要特征是无记忆性,又称为遗失记忆性。
- 伽玛分布:指数分布的推广,适用于描述正值随机变量的分布,有两个参数,形状和尺度参数。
- 贝塔分布:特点是密度函数为最大值两边的不对称分布,适用于描述工期等不对称分布的变量。
- 经验分布:对产生样本点累积分布函数的估计,统计学中是与样本的经验测度相关的分布函数。
- 卡方分布:由平均为0、方差为1的独立标准正态随机变量的平方和构成,用于统计推断和假设检验。
- 瑞利分布:指的是一种正值随机变量的连续概率分布,常用于描述具有幅度的正向随机变量的分布。
- 帕累托分布:一种用于描述不平等现象的概率分布,具有长尾形状,应用于经济学、金融学等领域。
- 三角型分布:密度数由最大值、最可能值和最小值构成的对称或不对称的三角型。
5-1 正态分布
- 正态分布
- Normal Distribution,又叫常态分布或高斯分布,Gaussian Distribution。
- 重要分布之一,适合许多事件的概率分布,正态曲线呈钟型(即钟形曲线)。
- 使用
random.normal()
方法获取正态分布数据,有以下三个参数。- size(指返回数组的形状)、loc(即平均值,钟型峰值所在的位置)。
- scale(标准偏差,偏差越小,偏离算术平均值就越少,反之亦然)。
1 |
|
5-2 均匀分布
- 均匀分布
- Uniform Distribution,用于描述每个事件发生机会均等的概率。
- 用
random.uniform()
方法获取均匀分布数据,有以下3个参数。- a:下限,默认0.0。
- b:上限,默认1.0。
- size:返回数组的形状。
1 |
|
5-3 增长分布
- 增长分布
- Logistic Distribution,又叫逻辑斯谛分布,用于描述增长。
- 广泛用于逻辑回归、神经网络等机器学习,连续型概率分布的一种。
- 使用
random.logistic()
方法获取增长分布数据,有以下三个参数。- size:返回数组的形状。
- loc:峰值的位置,默认为0。
- scale:标准偏差,默认为1。
- 增长分布与正态分布的区别
- 增长分布的尾部下方面积更大,意味着代表了更远离均值的事件发生可能性。
- 对于较高的尺度值(标准偏差),除峰值外,正态分布和增长分布几乎是相同。
1 |
|
5-4 指数分布
- 指数分布
- Exponential Distribution,也叫负指数分布。
- 用于描述直到下一个事件的时间,例如失败或成功等。
- 使用
random.exponential()
方法获取指数分布数据。- size:代表返回数组的形状。
- scale:速率的倒数,默认1.0。
- 泊松分布与指数分布的区别
- 泊松分布是一种离散概率分布,指数分布是一种连续概率分布。
- 泊松分布:用于描述一段时间之内,发生某个独立事件的次数。
- 指数分布:用于描述这些事件之间的时间间隔,具有单峰形状。
1 |
|
5-5 卡方分布
- 卡方分布
- Chi-Square Distribution,又叫西格玛分布,用于验证假设的基础。
- 用
random.chisquare()
方法获取卡方分布数据,有以下两个参数。- df:代表自由度,数字指定。
- size:代表返回数组的形状。
1 |
|
5-6 瑞利分布
- 瑞利分布
- Rayleigh Distribution,应用于信号处理,例如:无线信号的强度等。
- 使用
random.rayleigh()
方法获取瑞利分布数据,有以下两个参数。- size:代表返回数组的形状。
- scale:标准偏差,默认1.0。
- 在单位StdDev(标准偏差)中,自由度为2的瑞利分布和卡方分布相同。
1 |
|
5-7 帕累托分布
- 帕累托分布
- Pareto Distribution,经济学以外又被叫布拉德福分布。
- 帕累托分布即80-20分布,指的是20%的因素导致80%的结果。
- 用
random.pareto()
方法获取帕累托分布数据,有以下2个参数。- a:形状参数,数字指定。
- size:指返回数组的形状。
1 |
|
6 离散分布
- 离散分布
- Discrete Distribution,随机变量只能取有限或可数无限数量的值的概率分布。
- 常用分类
- 二项分布:在概率论和统计学中,n个独立的成功或失败试验里成功次数的离散概率分布。
- 多项分布:该分布用于描述在多次独立重复的试验中,多个不同结果发生次数的概率分布。
- 泊松分布:统计与概率学里常见的离散概率分布,法国数学家西莫恩·德尼·泊松在1838年时发表。
- 几何分布:n次伯努利试验中试验k次才得到首次成功的机率,即前k-1次失败,第k次成功的概率。
- 超几何分布:用于描述从有限总体中进行无放回抽样的结果,例如从产品中随机抽取不良品的数量。
- 齐普夫分布:常用于描述自然语言处理、文本分析和网页访问等领域中的现象,属于一种幂律分布。
- 负二项分布:Negative Binomial Distribution,统计学上一种离散概率分布。
6-1 二项分布
- 二项分布
- Binomial Distribution,又叫伯努利分布,离散概率分布的一种。
- 二项分布描述二项式场景的结果,例如抛硬币,要么正面要么反面。
- 使用
random.binomial()
方法获取二项分布数据,有以下三个参数。- n(代表的是试验次数,数字指定)、size(代表返回数组的形状)。
- p(每次试验的发生概率,例如每次抛硬币正反面概率都是0.5)。
- 如果二项分布有足够的数据点,将与具有一定位置和尺度的正态分布相似。
1 |
|
6-2 多项分布
- 多项分布
- Multinomial Distribution,是二项分布的推广。
- 描述了多项式场景的结果,例如人群血型,掷骰结果等。
- 使用
random.multinomial()
方法可获取多项分布数据。- size(返回数组的形状)、n(结果数量,如掷骰子共6个结果)。
- pvals(指定结果概率的列表,例如:掷骰子的概率为6个1/6)。
- 返回的多项样本不会只产生单个值,结果会生成pvals中的对应值。
- 由于是二项分布的推广,视觉效果和正态分布的相似性与二项分布的相同。
1 |
|
6-3 泊松分布
- 泊松分布
- Poisson Distribution,离散概率分布的一种。
- 泊松分布估计事件在指定时间内可以发生的次数。
- 使用
random.poisson()
方法获取泊松分布数据。- size:指返回数组的形状。
- lam:发生率或已知次数。
- 足够大的泊松分布,类似于二项分布和具特定标准偏差和均值的正态分布。
- 泊松分布与二项分布的区别
- 二项分布适用于独立重复的二元试验,而泊松分布则适用于连续试验。
- n非常大且p接近于0的二项分布,几乎与泊松分布相同,n*p约等于lam。
1 |
|
6-4 几何分布
1 |
|
6-5 超几何分布
1 |
|
6-6 齐普夫分布
- 齐普夫分布
- Zipf Distribution,又叫Zeta分布,用于根据Zipf定律对数据进行采样。
- 齐夫定律(Zipf):实验定律,一集合中第n个常用项是最常用项的1/n倍。
- 使用
random.zipf()
方法可以获取齐普夫分布数据,有以下两个参数。- a:指定了分布的参数。
- size:返回数组的形状。
1 |
|
Python NumPy 随机
https://stitch-top.github.io/2021/04/06/python/python05-python-numpy-sui-ji/