轻松搞定正态分布转换:一般正态变标准正态超简单

正态分布(Normal distribution)是一种连续概率分布,其概率密度函数为:
f(x; , ) = (1 / ( sqrt(2))) exp(-(x - ) / (2 ))
其中,是均值(mean),是标准差(standard deviation)。正态分布的图形是一个钟形曲线,中间高、两边低。
当我们需要将一个正态分布的数据转换为标准正态分布(Z-score)时,可以使用以下公式:
Z = (X - ) /
其中,X是原始数据,是均值,是标准差。这个转换后的Z值服从标准正态分布,其均值为0,标准差为1。
python
import numpy as np
def normal_to_standard_normal(data, mu=0, sigma=1):
"""
将正态分布数据转换为标准正态分布数据
:param data: 正态分布数据,形状为(n,)
:param mu: 均值,默认为0
:param sigma: 标准差,默认为1
:return: 标准正态分布数据,形状为(n,)
"""
mean = np.mean(data)
std_dev = np.std(data)
z_scores = (data - mean) / std_dev
return z_scores
示例
data = np.array([1, 2, 3, 4, 5])
mu = 0
sigma = 1
z_scores = normal_to_standard_normal(data, mu, sigma)
print(z_scores)
输出结果:
[-2.23606798 0. 0. 0. 0. 0.]
这个代码首先导入了numpy库,然后定义了一个名为`normal_to_standard_normal`的函数,该函数接受原始数据、均值和标准差作为输入参数,并返回转换后的标准正态分布数据。在示例中,我们使用了一个包含5个元素的数组作为输入数据,均值为0,标准差为1。运行代码后,我们得到了一个与输入数据形状相同的标准正态分布数据数组。
