
使用NumPy进行基本统计分析
引言
统计分析在数据科学中很重要。它帮助我们更好地理解数据。NumPy 是用于数值运算的关键 Python 库。它简化并加快了这个过程。在本文中,我们将探讨 NumPy 提供的一些用于基础统计分析的函数。
NumPy 是一个用于数值计算的 Python 库。它有助于处理数组和数学函数。它使计算更快、更容易。NumPy 是 Python 中数据分析和科学工作的基本工具。
要开始,您首先需要导入 NumPy 来进行统计分析。
1 |
import numpy as np |
按照惯例,我们将 `np` 作为 NumPy 的别名。这使得调用其函数更加容易。
现在让我们看一下 NumPy 中用于基础统计分析的几个关键统计函数。
平均值
平均值是衡量集中趋势的指标。它是所有值之和除以值的数量。我们使用 **mean()** 函数来计算平均值。
语法:`np.mean(data)`
1 2 3 4 5 6 7 8 9 10 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算平均值 mean = np.mean(data) # 打印结果 print(f"平均值: {mean}") # 平均值: 3.0 |
平均数
平均数通常与均值互换使用。它是所有值之和除以值的数量。我们使用 **average()** 函数来计算平均数。此函数很有用,因为它允许包含权重来计算加权平均数。
语法:`np.average(data)`,`np.average(data, weights=weights)`
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) weights = np.array([1, 2, 3, 4, 5]) # 计算平均数 average = np.average(data) # 计算加权平均数 weighted_average = np.average(data, weights=weights) # 打印结果 print(f"平均数: {average}") print(f"加权平均数: {weighted_average}") # 平均数: 3.0 # 加权平均数: 3.6666666666666665 |
中位数
中位数是在有序数据集中位于中间的值。当数据集中的值数量为奇数时,中位数是中间那个值。当数据集中的值数量为偶数时,中位数是中间两个值的平均值。我们使用 **median()** 函数来计算中位数。
语法:`np.median(data)`
1 2 3 4 5 6 7 8 9 10 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算中位数 median = np.median(data) # 打印结果 print(f"中位数: {median}") # 中位数: 3.0 |
方差
方差衡量数字与平均值之间的离散程度。它显示了数据集中值与平均值的差异。方差越大,离散度越大。我们使用 **var()** 函数来计算方差。
语法:`np.var(data)`
1 2 3 4 5 6 7 8 9 10 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算方差 variance = np.var(data) # 打印结果 print(f"方差: {variance}") # 方差: 2.0 |
标准差
标准差显示数字与平均值的变化程度。它是方差的平方根。标准差越大,离散度越大。它更容易理解,因为它使用的单位与数据相同。我们使用 **std()** 函数来计算标准差。
语法:`np.std(data)`
1 2 3 4 5 6 7 8 9 10 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算标准差 std_dev = np.std(data) # 打印结果 print(f"标准差: {std_dev}") # 标准差: 1.4142135623730951 |
最小值和最大值
最小值和最大值函数分别帮助识别数据集中最小和最大的值。我们使用 **min()** 和 **max()** 函数来计算这些值。
语法:`np.min(data)`,`np.max(data)`
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算最小值和最大值 minimum = np.min(data) maximum = np.max(data) # 打印结果 print(f"最小值: {minimum}") print(f"最大值: {maximum}") # 最小值: 1 # 最大值: 5 |
百分位数
百分位数显示一个值在数据集中的位置。例如,第 25 百分位数是数据中有 25% 的值小于该值的数值。百分位数帮助我们理解数据的分布。我们使用 **percentile()** 函数来计算百分位数。
语法:`np.percentile(data, percentile_value)`
1 2 3 4 5 6 7 8 9 10 11 12 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算第 25 和第 75 百分位数 percentiles = np.percentile(data, [25, 75]) # 打印结果 print(f"第 25 百分位数: {percentiles[0]}") print(f"第 75 百分位数: {percentiles[1]}") # 第 25 百分位数: 2.0 # 第 75 百分位数: 4.0 |
相关系数
相关系数显示两个变量之间线性关系的强度。它的值介于 -1 到 1 之间。值为 1 表示正相关。值为 -1 表示负相关。值为 0 表示没有线性关系。我们使用 **corrcoef()** 函数来计算相关系数。
语法:`correlation_matrix = np.corrcoef(data1, data2)`,`correlation_coefficient = correlation_matrix[0, 1]`
1 2 3 4 5 6 7 8 9 10 11 12 |
# 示例数据 data1 = np.array([1, 2, 3, 4, 5]) data2 = np.array([5, 4, 3, 2, 1]) # 计算相关系数矩阵 correlation_matrix = np.corrcoef(data1, data2) # 提取 data1 和 data2 之间的相关系数 correlation_coefficient = correlation_matrix[0, 1] print(f"相关系数: {correlation_coefficient}") # 相关系数: -1.0 |
极差(峰峰值)
极差(峰峰值)衡量数据的范围。它是最大值和最小值之间的差值。这有助于我们了解数据的分散程度。我们使用 **ptp()** 函数来计算极差。
语法:`range = np.ptp(data)`
1 2 3 4 5 6 7 8 9 10 |
# 示例数据 data = np.array([1, 2, 3, 4, 5]) # 计算极差 range = np.ptp(data) # 打印结果 print(f"极差: {range}") # 极差: 4 |
结论
NumPy 有助于进行基础统计分析。对于更复杂的统计,可以使用 SciPy 等其他库。了解这些基础知识有助于改进数据分析。
暂无评论。