【问题标题】:Scale one normally distributed column to the distribution of another normally distributed column将一个正态分布列缩放到另一个正态分布列的分布
【发布时间】: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


    【解决方案1】:

    您可以将这些值转换为 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-03
      • 2014-11-22
      • 1970-01-01
      • 2019-06-23
      • 2013-03-25
      • 2019-01-07
      • 2020-07-02
      • 1970-01-01
      相关资源
      最近更新 更多