Python 标准差
标准差(Standard Deviation)是描述数据分布的一种统计量,用来衡量数据的离散程度。在Python中,可以使用numpy库中的std函数来计算标准差。本文将详细介绍如何使用Python计算标准差,并提供多个示例代码。
示例代码1:计算一组数据的标准差
import numpy as np
data = [1, 2, 3, 4, 5]
std_dev = np.std(data)
print("标准差为:", std_dev)
Output:
在上面的示例中,我们定义了一个包含5个元素的数据列表,然后使用numpy库中的std函数计算了这组数据的标准差。
示例代码2:计算随机生成数据的标准差
import numpy as np
data = np.random.randint(0, 10, 10)
std_dev = np.std(data)
print("随机数据的标准差为:", std_dev)
Output:
在这个示例中,我们使用numpy库中的random.randint函数生成了一个包含10个随机整数的数据列表,然后计算了这组数据的标准差。
示例代码3:计算二维数组的标准差
import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
std_dev = np.std(data)
print("二维数组的标准差为:", std_dev)
Output:
在这个示例中,我们定义了一个包含3行3列的二维数组,然后使用numpy库中的std函数计算了这个二维数组的标准差。
示例代码4:计算指定轴方向的标准差
import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
std_dev_row = np.std(data, axis=1)
std_dev_col = np.std(data, axis=0)
print("按行计算的标准差为:", std_dev_row)
print("按列计算的标准差为:", std_dev_col)
Output:
在这个示例中,我们定义了一个包含3行3列的二维数组,然后分别按行和按列计算了这个二维数组的标准差。
示例代码5:计算加权数据的标准差
import numpy as np
data = [1, 2, 3, 4, 5]
weights = [0.1, 0.2, 0.3, 0.2, 0.2]
std_dev = np.std(data, ddof=0, weights=weights)
print("加权数据的标准差为:", std_dev)
在这个示例中,我们定义了一个包含5个元素的数据列表和对应的权重列表,然后使用numpy库中的std函数计算了这组加权数据的标准差。
示例代码6:计算缺失值处理后的标准差
import numpy as np
data = [1, 2, np.nan, 4, 5]
std_dev = np.nanstd(data)
print("处理缺失值后的标准差为:", std_dev)
Output:
在这个示例中,我们定义了一个包含5个元素的数据列表,其中包含一个缺失值(np.nan),然后使用numpy库中的nanstd函数计算了处理缺失值后的标准差。
示例代码7:计算多组数据的标准差
import numpy as np
data1 = [1, 2, 3, 4, 5]
data2 = [6, 7, 8, 9, 10]
std_dev = np.std([data1, data2])
print("多组数据的标准差为:", std_dev)
Output:
在这个示例中,我们定义了两组数据,然后使用numpy库中的std函数计算了这两组数据的标准差。
示例代码8:计算数据集的标准差并绘制直方图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 1000)
std_dev = np.std(data)
plt.hist(data, bins=30, density=True, alpha=0.6, color='g')
plt.axvline(std_dev, color='r', linestyle='dashed', linewidth=1)
plt.show()
Output:
在这个示例中,我们生成了一个包含1000个服从正态分布的随机数的数据集,然后计算了这个数据集的标准差,并绘制了数据集的直方图,并在直方图上用红色虚线表示了标准差的位置。
示例代码9:计算数据集的标准差并绘制箱线图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 1000)
std_dev = np.std(data)
plt.boxplot(data)
plt.axhline(std_dev, color='r', linestyle='dashed', linewidth=1)
plt.show()
Output:
在这个示例中,我们生成了一个包含1000个服从正态分布的随机数的数据集,然后计算了这个数据集的标准差,并绘制了数据集的箱线图,并在箱线图上用红色虚线表示了标准差的位置。
示例代码10:计算数据集的标准差并绘制散点图
import numpy as np
import matplotlib.pyplot as plt
x = np.random.normal(0, 1, 100)
y = np.random.normal(0, 1, 100)
std_dev_x = np.std(x)
std_dev_y = np.std(y)
plt.scatter(x, y)
plt.axhline(std_dev_y, color='r', linestyle='dashed', linewidth=1)
plt.axvline(std_dev_x, color='r', linestyle='dashed', linewidth=1)
plt.show()
Output:
在这个示例中,我们生成了两组包含100个服从正态分布的随机数的数据集,然后分别计算了这两组数据集的标准差,并绘制了数据集的散点图,并在散点图上用红色虚线表示了每个维度的标准差的位置。
示例代码11:计算数据集的标准差并绘制折线图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 100)
std_dev = np.std(data)
plt.plot(data)
plt.axhline(std_dev, color='r', linestyle='dashed', linewidth=1)
plt.show()
Output:
在这个示例中,我们生成了一个包含100个服从正态分布的随机数的数据集,然后计算了这个数据集的标准差,并绘制了数据集的折线图,并在折线图上用红色虚线表示了标准差的位置。
示例代码12:计算数据集的标准差并绘制饼图
import numpy as np
import matplotlib.pyplot as plt
data = [20, 30, 40, 10]
std_dev = np.std(data)
plt.pie(data, labels=['A', 'B', 'C', 'D'], autopct='%1.1f%%')
plt.show()
Output:
在这个示例中,我们定义了一个包含4个元素的数据列表,然后计算了这个数据集的标准差,并绘制了数据集的饼图。
示例代码13:计算数据集的标准差并绘制热力图
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = np.random.rand(10, 10)
std_dev = np.std(data)
sns.heatmap(data, annot=True, cmap='coolwarm')
plt.title('Heatmap with Standard Deviation')
plt.show()
在这个示例中,我们生成了一个包含10行10列的随机数的二维数组,然后计算了这个数据集的标准差,并绘制了数据集的热力图,并在热力图上显示了每个格子的数值,并用颜色表示了数值的大小。
示例代码14:计算数据集的标准差并绘制散点矩阵图
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = np.random.rand(100, 4)
std_dev = np.std(data, axis=0)
sns.pairplot(data)
plt.suptitle('Pairplot with Standard Deviation')
plt.show()
在这个示例中,我们生成了一个包含100行4列的随机数的二维数组,然后计算了这个数据集每列的标准差,并绘制了数据集的散点矩阵图,用于展示每两个变量之间的关系,并在标题中显示了标准差的信息。
示例代码15:计算数据集的标准差并绘制雷达图
import numpy as np
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D', 'E']
values = [3, 4, 2, 5, 1]
std_dev = np.std(values)
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
ax.fill_between(np.linspace(0, 2*np.pi, len(categories), endpoint=False), values, alpha=0.1)
ax.plot(np.linspace(0, 2*np.pi, len(categories), endpoint=False), values)
plt.title('Radar Chart with Standard Deviation')
plt.show()
Output:
在这个示例中,我们定义了一个包含5个类别的数据列表,然后计算了这个数据集的标准差,并绘制了数据集的雷达图,用于展示每个类别的数值,并在标题中显示了标准差的信息。
示例代码16:计算数据集的标准差并绘制面积图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.rand(10)
std_dev = np.std(data)
plt.fill_between(range(len(data)), data, color='skyblue', alpha=0.4)
plt.plot(data, color='Slateblue', alpha=0.6)
plt.title('Area Chart with Standard Deviation')
plt.show()
Output:
在这个示例中,我们生成了一个包含10个随机数的数据列表,然后计算了这个数据集的标准差,并绘制了数据集的面积图,用于展示数据的变化趋势,并在标题中显示了标准差的信息。
示例代码17:计算数据集的标准差并绘制气泡图
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
sizes = np.random.rand(100) * 1000
std_dev_x = np.std(x)
std_dev_y = np.std(y)
plt.scatter(x, y, s=sizes, alpha=0.5)
plt.axhline(std_dev_y, color='r', linestyle='dashed', linewidth=1)
plt.axvline(std_dev_x, color='r', linestyle='dashed', linewidth=1)
plt.title('Bubble Chart with Standard Deviation')
plt.show()
Output:
在这个示例中,我们生成了两组包含100个随机数的数据列表,以及一个随机大小的数据列表,然后分别计算了这两组数据集的标准差,并绘制了数据集的气泡图,用于展示每个数据点的位置和大小,并在标题中显示了标准差的信息。
示例代码18:计算数据集的标准差并绘制堆叠条形图
import numpy as np
import matplotlib.pyplot as plt
N = 5
men_means = [20, 35, 30, 35, 27]
women_means = [25, 32, 34, 20, 25]
std_dev_men = np.std(men_means)
std_dev_women = np.std(women_means)
ind = np.arange(N)
width = 0.35
p1 = plt.bar(ind, men_means, width)
p2 = plt.bar(ind, women_means, width, bottom=men_means)
plt.axhline(std_dev_men, color='r', linestyle='dashed', linewidth=1)
plt.axhline(std_dev_women, color='r', linestyle='dashed', linewidth=1)
plt.title('Stacked Bar Chart with Standard Deviation')
plt.show()
Output:
在这个示例中,我们定义了两组包含5个元素的数据列表,然后分别计算了这两组数据集的标准差,并绘制了堆叠条形图,用于展示男性和女性的数据,并在图中用红色虚线表示了每组数据集的标准差的位置。
示例代码19:计算数据集的标准差并绘制箱线图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 100)
std_dev = np.std(data)
plt.boxplot(data)
plt.title('Boxplot with Standard Deviation')
plt.show()
Output:
在这个示例中,我们生成了一个包含100个服从正态分布的随机数的数据集,然后计算了这个数据集的标准差,并绘制了数据集的箱线图,用于展示数据的分布情况,并在标题中显示了标准差的信息。
示例代码20:计算数据集的标准差并绘制直方图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(0, 1, 100)
std_dev = np.std(data)
plt.hist(data, bins=10, color='skyblue', edgecolor='black')
plt.axvline(std_dev, color='r', linestyle='dashed', linewidth=1)
plt.title('Histogram with Standard Deviation')
plt.show()
Output:
在这个示例中,我们生成了一个包含100个服从正态分布的随机数的数据集,然后计算了这个数据集的标准差,并绘制了数据集的直方图,用于展示数据的分布情况,并在图中用红色虚线表示了标准差的位置。