首页 > 其他分享 >使用numpy快速实现统计分析的常用代码实现

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

时间:2024-09-02 17:50:34浏览次数:8  
标签:统计分析 Python 实现 numpy print values np data axis

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

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面试真题,复习时非常方便

标签:统计分析,Python,实现,numpy,print,values,np,data,axis
From: https://blog.csdn.net/2401_85903292/article/details/141753904

相关文章

  • Winform点击按钮Panle切换页面的实现
    一、项目结构二、主界面Main.csPanelName:panel1 三、代码实现namespace测试窗口切换{publicpartialclassMain:Form{//先定义对应的私有字段privateCmmPage_cmmPage;privateTwoPage_twoPage;publicMain()......
  • CAMEL:通过角色扮演,实现大模型自主合作的多智能体框架
    CAMEL:通过角色扮演,实现大模型自主合作的多智能体框架提出背景秒懂大纲解法拆解类比全流程分析CAMEL对比AutoGen、MetaGPT为什么通过角色扮演和对话,就能实现大模型的自主合作,探索自主交互智能体在复杂任务求解中的潜力? 论文:CAMEL:CommunicativeAgentsfor“Mind”Explorati......
  • vue实现页面顶部路由标签跳转
    在页面使用<!--活跃菜单--> <divclass="panel-group"ref="scrollPane"> <router-linkref="tag":to="menu.path"v-for="(menu,idx)inactiveRoutes" style="display:......
  • JS的DOM高级编程和动态添加表格行的小案例实现
    DOM高级编程(DocumentobjectModal)DOM概述DOM-DocumentObjectModal,它是W3C国际组织的一套Web标准DOM是一种与浏览器、平台、语言无关的接口Dom认为:html文档中每个成员都是一个节点,根据节点的不同,可分为:文档节点(document)元素节点(element)属性节点(attribute)文本节点(tex......
  • 原生JS实现城市选择(输入提示)组控件
    先看效果图:功能需求:国内城市、国际城市切换首字母索引分类输入变化提示HTML代码<divclass="m-list"><divclass="g-sch"><ulclass="f-cbz-blankhide"><liclass="first"><pclass="u-......
  • 基于python+flask框架的基于web的线上考试管理系统的设计与实现(开题+程序+论文) 计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,教育领域正经历着深刻的变革。传统考试模式因其效率低下、管理繁琐且难以适应大规模、远程教学的需求,已逐渐显现出......
  • Java 实现二叉树展平为链表
    Java实现二叉树展平为链表前言问题背景解决方案代码实现代码分析结论使用原地算法(O(1)空间复杂度)将二叉树展平为链表问题描述解决方案代码实现代码分析优化思路结论前言在处理二叉树数据结构时,有时需要将其转换成一种特殊的形态,即链表。这种转换可以简化某些......
  • svnhooks--给用户提交权限,实现单次提交
    在上一篇文章说到,我们通过getuser的方法向服务器请求到svn配置文件有写权限的用户,下面我们需要把用户显示在前端文件中,简单列一下前端的核心显示代码,具体的css样式就不列出来了<divclass="user-container"id="userList"{%ifcommitSwitch=='true'%}style="display:......
  • 【牛客网】JZ65:不用四则运算符实现两数相加
    文章目录问题来源思考例:使用位操作符进行int变量交换位操作符的使用代码实现问题来源牛客网数据结构题目......
  • 艾体宝洞察丨透过语义缓存,实现更快、更智能的LLM应用程序
    传统的缓存只存储数据而不考虑上下文,语义缓存则不同,它能理解用户查询背后的含义。它使数据访问更快,系统响应更智能,对GenAI应用程序至关重要。什么是语义缓存?语义缓存解释并存储用户查询的语义,使系统能够根据意图而不仅仅是字面匹配来检索信息。这种方法可以实现更细致入微的数据......