标准正态分布在某个点的概率密度可用scipy.stats.norm.pdf计算,下面模拟计算-5~5的概率密度
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
#正态分布概率密度
X = []
Y = []
for a in np.linspace(-5, 5, 100):
y = stats.norm.pdf(a)
X.append(a)
Y.append(y)
plt.plot(X, Y)
plt.xlabel("x")
plt.ylabel("p")
plt.title("正态分布概率密度")
plt.show()
这个图怎么理解呢?这是连续型随机变量的概率密度,并不是说在某个点的概率就是在这个点发生的概率。这里可以理解为在0附近发生的可能性要大于在2附近发生的可能性。
3、累积概率密度(概率分布)
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
#正态分布概率密度
X = []
Y = []
for a in np.linspace(-5, 5, 100):
y = stats.norm.cdf(a)
X.append(a)
Y.append(y)
plt.plot(X, Y)
plt.xlabel("x")
plt.ylabel("p")
plt.title("正态分布累积概率分布")
plt.show()
累计概率分布这个图比较好理解,例如在-2处的值就表示随机变量小于-2的概率。
正态分布查表其实就是查累积概率分布。
设某校学生身高服从均值为160, 方差为3600的正态分布,那该校学生身高在180以下的学生比例是多少?
转换为标准正态分布,
服从标准正态分布,
,于是我们查标准正态分布表0.5的值,用
scipy.stats.norm.cdf(0.5)
from scipy import stats
p = stats.norm.cdf(0.5)
print(p)
结果:0.6914624612740131
即有69.1%的学生身高在180以下。
4、随机生成一组正态分布样本
import numpy as np
#生成15个均值为10,标准差为2的正态分布样本
r = np.random.normal(loc=10, scale=2, size=15)
print(r)
如果想2次生成的一样,可以设置seed
import numpy as np
#设置随机数种子seed
np.random.seed(456789)
#生成15个均值为10,标准差为2的正态分布样本
r = np.random.normal(loc=10, scale=2, size=15)
print(r)
author:
蓝何忠
n
orm
.
pdf
(x, loc, scale)等同于n
orm
.
pdf
(y) / scale ,其中 y = (x - loc) / scale
调用方式用两种,见代码:
from
scipy
import
stat
s
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(12,8))
x=np.lins
// An highlighted block
rng = np.random.Random
Stat
e(seed=12345)
samples =
stat
s.n
orm
.rvs(size=1000, random_
stat
e=rng)
接下来我们将使用各种方法画出以上数据的累积分布图
1、matplotlib.pyplot.hist()
def hist(self, x, bins=None, range=None, density=None, weights=None,
cumulative=F
pdf
——概率密度函数标准形式是:
n
orm
.
pdf
(x, loc, scale)等同于n
orm
.
pdf
(y) / scale ,其中 y = (x - loc) / scale
stat
s.n
orm
主要公共方法如下:
rvs:随机变量(就是从这个分布中抽一些样本)
pdf
:概率密度函数。
cdf:累计分布函数
sf:残存函数(1-CDF)
ppf:分位点函数(CDF的逆)
isf:逆残存函数(sf的逆)
stat
s:返回均值,方
Python
scipy
.
stat
s.n
orm
模块,
pdf
() 实例源码
转:http://codingdict.com/sources/py/
scipy
.
stat
s.n
orm
/13753.html
建议,到原网站去看效果比较好.
Python
50个代码示例,用于说明如何使用
scipy
.
stat
s.n
orm
.
pdf
()。
项目:ChainConsumer 作者:Samreay | 项目源码 | 文件源码
def test_megkde_2d_basic():
# Draw from n
orm
a
def
pdf
(x, mean, var):
return exp(-(x - mean) ** 2 / (2 * var ** 2)) / sqrt(2 * pi) * var
如果是对dataframe进行操作可以抽取单列用拉姆达函数:
df['R_
pdf
'] ..
正态分布
(N
orm
al distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),最早由A.棣莫弗在求二项分布的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
正态曲线呈钟型,两头低,中间高,左右对称因...