Python常用数据分析模块原理解析


Posted in Python onJuly 20, 2020

前言

python是一门优秀的编程语言,而是python成为数据分析软件的是因为python强大的扩展模块。也就是这些python的扩展包让python可以做数据分析,主要包括numpy,scipy,pandas,matplotlib,scikit-learn等等诸多强大的模块,在结合上ipython交互工具 ,以及python强大的爬虫数据获取能力,字符串处理能力,让python成为完整的数据分析工具。

Python常用数据分析模块原理解析

numpy

官网:https://www.scipy.org/

NumPy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。可以利用这种数组对整块数据执行一些数学运算,比python自带的数组以及元组效率更高,其语法跟变量元素之间的运算一样,无需进行循环操作。

在使用python进行数据分析的过程中,我们大部分时候是不会直接使用numpy包,而是其他包要用到numpy。可以说numpy是整个python数据分析工作的基石。

举个简单的案例,我们要计算100000个随机数的值,如果传统编程需要写循环,用了2.2s,而使用numpy数据结构,则可以进行向量化操作,无需循环,只需要28.2ms节约大量时间。

In [1]: import numpy
In [2]: my_arr = np.arange(1000000)
In [3]: my_list = list(range(1000000))
In [4]: %time for _ in range(10): my_arr2 = my_arr * 2
Wall time: 28.2 ms
In [5]: %time for _ in range(10): my_list2 = [x * 2 for x in my_list]
Wall time: 2.2 s

pandas

官网:https://pandas.pydata.org/

Python Data Analysis Library,可根据需要帮助组织各种参数的数据。pandas基于numpy底层数据结构。让python成为类似Excel,R等统计学软件,主要就是pandas的功劳。pandas在python中实现了各种数据的计算 ,分组计算,添加删除,排序,筛选,抽样等都能工作。使Pandas成为数据科学家中最受欢迎的库。

pandas主要包含两种数据结构:Series与DataFrame。Series是一种类似于以为数组的对象,它由一组数据以及与之相关的数据标签组成,仅有一组数据即可产生最简单的Series。Series类似于R中的向量,属于以为数据。Series可以构成二维的DataFrame。行为记录值,列为观测值。如果熟悉R中的数据框DataFrame,在使用pandas则会轻松上手,因为作者自己说pandas的DataFrame就是模仿R的数据框。

scipy

官网:https://www.scipy.org/

scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。
Scipy是由针对特定任务的子模块组成:

Python常用数据分析模块原理解析

matplotlib

官网:https://matplotlib.org/

matplotlib是python中优秀的数据可视化的包,根据命名就可以看到,它其实是一个matlib的plot库,也就是利用python将matlib的绘图功能实现了一遍。如果你熟悉matlib绘图,那么将直接上手。matplotlib是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。它为利用通用的图形用户界面工具包,如Tkinter, wxPython, Qt或GTK+向应用程序嵌入式绘图提供了应用程序接口(API)。

plotnine

官网:https://plotnine.readthedocs.io/en/stable/

如果你不熟悉matlib,而是从R转到python,可能不太喜欢matplotlib的绘图模式和风格,觉得不如R绘图方便。而且R还有ggplot2包。那么plotnine则是将ggplot2移植到python上,在python上完全重现ggplot2的功能。如果你熟悉ggplot2的语法,直接上手。不过,我倒是觉得这个工作意义不大,这属于重新发明轮子,后面如果ggplot2在更新了,二者之间还是会有一些差别,用户会有些困扰。当然,这样的问题仁者见仁,愚者见愚。聊胜于无,如果想在 python环境中完成全部工作,有了这个包还是非常不错的。

Python常用数据分析模块原理解析

scikit-learn

官网:https://scikit-learn.org/stable/

有很多人不是天天喜欢三句话不离大数据,机器学习,人工智能吗。那么scikit-learn则是完成python大数据机器学习的包。scikit-Learn是python数据分析中非常重要的一个模块,它是一个基于NumPy和SciPy构建的开源机器学习工具包。 它具有常用的ML算法,可用于预处理,分类,回归以及聚类。算法包括[支持向量机]( support vector machines,ridge回归, 网格搜索算法(Grid Search algorithm) ,k均值聚类等等。另外还有样本数据集。API易学易用。 在几乎所有平台上的良好性能,它在学术和商业用途中都很受欢迎。

Python常用数据分析模块原理解析

其他:

除了以上包之外,python还有很多很多其他有关数据分析的包,不胜枚举,比如图片识别的opencv,google机器学习开源库tensorflow,PyTorch等等,一个崭新的世界等待你去发现。但是前提是前面基础这些包熟悉了,以及有最核心的计算机以及统计学基础,否则就是无水之源,无木之本,你所谓的人工智能,只能是人工智障。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3计算三角形的面积代码
Dec 18 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
python3处理含有中文的url方法
May 10 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
Python selenium页面加载慢超时的解决方案
Mar 18 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
python删除csv文件的行列
Apr 06 Python
yolov5返回坐标的方法实例
Mar 17 Python
python运行脚本文件的三种方法实例
Jun 25 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 #Python
用pandas划分数据集实现训练集和测试集
Jul 20 #Python
Python数据可视化实现漏斗图过程图解
Jul 20 #Python
浅谈pandas dataframe对除数是零的处理
Jul 20 #Python
为什么说python更适合树莓派编程
Jul 20 #Python
Python faker生成器生成虚拟数据代码实例
Jul 20 #Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 #Python
You might like
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
python os.listdir()乱码解决方案
2021/01/31 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
学院书画协会部门岗位职责
2013/12/01 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
企业安全生产责任书
2014/04/14 职场文书
教师四风问题整改措施
2014/09/25 职场文书
监理中标通知书
2015/04/16 职场文书
欢迎新生标语2015
2015/07/16 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python