【发布时间】:2020-04-02 19:10:36
【问题描述】:
我有一个数组(分布),我想在 a 和 b 的某个范围内进行分布,这是在 R 中使用函数 qunif 完成的,我想在 Python 中完成它给出不同的结果:
R
a <- c(0.012701112, 0.131852757, 0.230918602, 0.382584686, 0.422162992,
0.553339539, 0.64807742, 0.735555988, 0.813598841, 0.975585224)
b <- qunif(a, -4, 4)
b
# -3.8983911 -2.9451779 -2.1526512 -0.9393225 -0.6226961
# 0.4267163 1.1846194 1.8844479 2.5087907 3.8046818
Python
import scipy.stats as stats
a = [0.012701112, 0.131852757, 0.230918602, 0.382584686, 0.422162992,
0.553339539, 0.64807742, 0.735555988, 0.813598841, 0.975585224]
b = stats.uniform.ppf(a, -4, 4)
b
# [-3.94919555 -3.47258897 -3.07632559 -2.46966126 -2.31134803
# -1.78664184 -1.40769032 -1.05777605 -0.74560464 -0.0976591 ]
我看到here这两个功能是等价的。
【问题讨论】:
-
请注意,
qunif(p, m, M)只不过是m + (M-m)*p。
标签: python r scipy statistics