成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

python生成正态分布随机数

Q1:如何用python numpy产生一个正态分布随机数的向量或者矩阵

importnumpyasnp
x=np.random.randn(4,5)#生成一个4*5的服从正态分布(0,1)的数组
print(x)

结果:

array([[1.49880806,0.49802583,-0.73570234,0.6838595,-1.07146133],
[-0.80834618,0.28833047,0.6492072,-1.23454671,-0.42839883],
[0.75936243,-0.67680322,1.06767814,-0.11232622,-0.62300974],
[-1.66010364,-0.60023795,0.35930247,-0.5079359,0.21811627]])

Q2:如何用python语言,产生某一区间内的正态分布的100个随机数

import matplotlib.pyplot as plt
import scipy.stats as stats
lower, upper = 3.5, 6、mu, sigma = 5, 0.7、X = stats.truncnorm(
(lower - mu) / sigma, (upper - mu) / sigma, loc=mu, scale=sigma)
N = stats.norm(loc=mu, scale=sigma)
fig, ax = plt.subplots(2, sharex=True)
ax[0].hist(X.rvs(10000), normed=True)
ax[1].hist(N.rvs(10000), normed=True)
plt.show()

Q3:python代码如何产生在某一区间内的正态分布的随机数,求指点一下,谢谢啦

提问者你好,我在想这个的过程中可能帮你做出来了,所以就先用了,如果觉得ok,请采纳

123456789101112131415161718192021222324#载入包为scipy统计包中的normfromscipy.statsimportnorm#myexample#因为我要提取的是35747个在[33.76,56.25]的正态随机数X7=norm.rvs(size=35747)#现在提取出来的是在服从N(0,1)分布上的正态随机数#我现在要提取服从N((56.25-33.76)/2+33.76,1)的正态随机数#(统计标准化定义反推回去去做)X7=(X7*1)+(56.25-33.76)/2#则可以得到你想要的结果#yourexampleimportrandomfromscipy.statsimportnormX1=random.uniform((0-35)/22,(180-35)/22)X1=norm.rvs(X1,size=100)X1=(X1*22)+35print(X1)#(0-35)/22是正态化处理,要知道在这里面它如何变幻#之后帮你做了做,图像在上面自己看吧

Q4:python求正态分布的随机数

比如要生成符合f()分布的随机数,f的反函数是g,那么先生成定义域内的均匀分布的随机数,在带入g(x)计算就好。
对于你这个问题,python有自带的方法。
#!/usr/bin/python2.7、import random
random.normalvariate(带三个参数,你试试)

猜你喜欢

更多