0
我有,我想攀登,以满足特定的标准差和平均需求值的列表。具体来说,除了所有值都大于0的数据集之外,我希望标准化的数据集标准化为0且标准差为1;这些我想缩放,使得它们的平均值是1应如何列表的值进行缩放以使它们符合标准偏差和平均要求是什么?
什么是做这种类型的事情在Python的好办法?
我有,我想攀登,以满足特定的标准差和平均需求值的列表。具体来说,除了所有值都大于0的数据集之外,我希望标准化的数据集标准化为0且标准差为1;这些我想缩放,使得它们的平均值是1应如何列表的值进行缩放以使它们符合标准偏差和平均要求是什么?
什么是做这种类型的事情在Python的好办法?
如果您使用的是Python中的数据,您将希望使用科学堆栈(请参见here),特别是numpy
,scipy
和pandas
。什么你要找的是zscore
,这是一个足够常见的操作,它的内置到scipy
为scipy.stats.zscore
。
从非零均值和非单位STDDEV随机阵列开始:
>>> import numpy as np
>>> import scipy.stats
>>> data = np.random.uniform(0, 100, 10**5)
>>> data.mean(), data.std()
(49.950550280158893, 28.910154760235972)
我们可以重新归一化:
>>> renormed = scipy.stats.zscore(data)
>>> renormed.mean(), renormed.std()
(2.0925483568134951e-16, 1.0)
和移位,如果我们想:
>>> if (data > 0).all():
... renormed += 1
...
>>> renormed.mean(), renormed.std()
(1.0000000000000002, 1.0)
我们可以手动做到这一点,当然:
>>> (data - data.mean())/data.std()
array([-0.65558504, 0.24264144, -0.1112242 , ..., -0.40785103,
-0.52998332, 0.10104563])
(注意,默认情况下,这使用delta的自由度为0,即分母是N.如果您想要N-1,则通过ddof=1
)。
我认为你试图解决一个方程组,以满足特定的值。你应该搜索“python goal seek”或“python equation solver”。 –