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 相关文章推荐
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
基于python内置函数与匿名函数详解
Jan 09 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
Golang GBK转UTF-8的例子
Aug 26 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
python中count函数简单的实例讲解
Feb 06 Python
jupyter notebook 多行输出实例
Apr 09 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 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 Imagick获取图片RGB颜色值
2014/07/28 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
namespace.js Javascript的命名空间库
2011/10/11 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
webpack多页面开发实践
2017/12/18 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
go和python调用其它程序并得到程序输出
2014/02/10 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
python 实现两个线程交替执行
2020/05/02 Python
Python logging模块原理解析及应用
2020/08/13 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
华为C++笔试题
2014/08/05 面试题
绿色环保家庭事迹材料
2014/08/31 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
2014年商场工作总结
2014/11/22 职场文书
司机岗位职责范本
2015/04/10 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
Python利用folium实现地图可视化
2021/05/23 Python
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技