使用numpy快速实现统计分析的常用代码实现

文末赠免费精品编程资料~~

NumPy 是 Python 编程语言中用于数值计算的核心库之一,在统计分析方面,它也提供了各种各样的函数来实现统计分析。

NumPy统计分析功能概览

  • 基本统计量:计算平均值、中位数、众数、标准差、方差等。 

  • 排序和搜索:排序数组、查找最大值、最小值、百分位数等。

  • 聚合操作:求和、乘积、累加等。 

  • 随机数生成:生成随机数,用于模拟和实验设计。 

  • 线性代数:矩阵运算、特征值分解等,间接支持统计建模。

本文介绍一些numpy常用的一些统计分析案例的代码。

示例数据

import numpy as np

# 示例数据
np.random.seed(0)  # 设置随机种子以获得可重复的结果
data = np.random.normal(loc=0.0, scale=1.0, size=(100, 5))

1. 计算每一列的均值

mean_values = np.mean(data, axis=0)
print("Mean values:", mean_values)

图片

2. 计算每一列的标准差

std_dev = np.std(data, axis=0)
print("Standard Deviations:", std_dev)

图片

3. 找出每列的最大值和最小值

max_values = np.max(data, axis=0)
min_values = np.min(data, axis=0)
print("Max values:", max_values)
print("Min values:", min_values)

图片

4. 计算每一列的中位数

median_values = np.median(data, axis=0)
print("Median values:", median_values)

图片

5. 计算每一列的四分位数

percentiles = np.percentile(data, [25, 50, 75], axis=0)
print("Percentiles:", percentiles)

图片

6. 计算每一列的方差

variance = np.var(data, axis=0)
print("Variances:", variance)

图片

7. 计算每一列的偏度和峰度

from scipy.stats import skew, kurtosis
skewness = np.apply_along_axis(lambda x: skew(x), 0, data)
kurtosis = np.apply_along_axis(lambda x: kurtosis(x), 0, data)
print("Skewness:", skewness)
print("Kurtosis:", kurtosis)

图片

skew和kurtosis 函数需要至少有三个非零值的数组才能计算,否则它们会抛出错误。这样 apply_along_axis函数 可以沿着第一个轴(即列)来计算。

8. 计算每一列的累积和

cumulative_sum = np.cumsum(data, axis=0)
print("Cumulative sum of last row:", cumulative_sum[-1])

图片

9. 使用广播进行数据标准化

normalized_data = (data - np.mean(data, axis=0)) / np.std(data, axis=0)
print("Normalized data sample:", normalized_data[:3])

图片

10. 计算每一列的累乘

cumulative_product = np.cumprod(data, axis=0)
print("Cumulative product of last row:", cumulative_product[-1])

图片

11. 计算每一列的几何平均数

geometric_mean = np.exp(np.mean(np.log(np.abs(data)), axis=0))
print("Geometric means:", geometric_mean)

图片

12. 计算每一列的调和平均数

harmonic_mean = np.mean(1 / data, axis=0)**-1
print("Harmonic means:", harmonic_mean)

图片

13. 使用高级索引进行数据筛选

mask = data > 0
positive_data = data[mask]
print("Positive data count:", len(positive_data))

图片

14. 计算每一列的中位绝对偏差

mad = np.median(np.abs(data - np.median(data, axis=0)), axis=0)
print("Median absolute deviations:", mad)

图片

15. 计算每一列的四分位距

iqr = np.subtract(*np.percentile(data, [75, 25], axis=0))
print("Interquartile ranges:", iqr)

图片

16. 离群值检测

q1 = np.percentile(data, 25, axis=0)
q3 = np.percentile(data, 75, axis=0)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
outliers = ((data < lower_bound) | (data > upper_bound)).any(axis=1)
print("Outliers count:", outliers.sum())

图片

17. 计算每一列的协方差矩阵

cov_matrix = np.cov(data.T)
print("Covariance matrix:\n", cov_matrix)

图片

18. 计算每一列的相关系数矩阵

corr_matrix = np.corrcoef(data.T)
print("Correlation matrix:\n", corr_matrix)

图片

本文介绍了 NumPy 在执行数据统计分析时的多种高效方法。通过这些方法,大家可以快速掌握统计分析的技巧,并在实际应用中更加灵活地应对各种复杂问题。

文末福利

如果你对Python感兴趣的话,可以试试我整理的这一份全套的Python学习资料,【点击这里】免费领取!

包括:Python激活码+安装包、Python
web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,学习不再是只会理论

④ 华为出品独家Python漫画教程,手机也能学习

⑤ 历年互联网企业Python面试真题,复习时非常方便

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值