【发布时间】:2021-06-06 21:01:33
【问题描述】:
我有两个正态分布的列。 Col_1 ~ N(10.599704,2.187732) 和 Col_2 ~ N(9.628111,1.120925)。无论如何要缩放第 1 列的值,使它们看起来像 python 中第 2 列中的值一样分布?谢谢!
【问题讨论】:
标签: python pandas scikit-learn scipy statistics
我有两个正态分布的列。 Col_1 ~ N(10.599704,2.187732) 和 Col_2 ~ N(9.628111,1.120925)。无论如何要缩放第 1 列的值,使它们看起来像 python 中第 2 列中的值一样分布?谢谢!
【问题讨论】:
标签: python pandas scikit-learn scipy statistics
您可以将这些值转换为 z 分数(本质上是正态分布,均值 0 和标准偏差 1),然后将它们放大以匹配任意均值/标准偏差
In [85]: l = np.random.normal(10, 2, 100)
In [86]: l.mean(), l.std()
Out[86]: (10.21841407055716, 1.6444921910870982)
In [87]: import scipy.stats as ss
In [88]: l2 = ss.zscore(l) * 100 + 5000
In [89]: l2.mean(), l2.std()
Out[89]: (5000.000000000001, 99.99999999999996)
如果您不想要样本 z 分数,因为它使用样本均值和标准差,您可以将其计算为 (l - 10) / 2。
【讨论】: