本文在Creative Commons许可证下发布

市面上的分析工具大致分为两大类,菜单式的工具和命令行式的工具。前者适合于初学入门,类似于跟团旅游,提供了固定的路线。分析套路比较固定化,点几下鼠标就可以搞定也很省事。后者适合于老手玩家,类似于自由行,需要自己规划数据工作流,适用于自定义的灵活分析。大多数用户害怕命令行,然而使用命令行才能掌握真正的力量。

在命令行工具类别中,最耀眼的是R和Python这对双星。他们有非常多的相似之处,第一个相似之处是“快”。这种快不是纯计算速度快,而是从想法到结果的快。因为不论是探索数据还是建模,都需要各种尝试、各种试错、各种踩坑,如果要花2小时写代码,跑1分钟,不如花1分钟写程序,跑1小时。因为人的时间总是更为宝贵。第二个相似之处是扩展丰富。即有大量现成的函数模块。从想法到结果的快速实现,不能等待重新造轮子,另一方面,试错也要做很多复杂的自定义任务,将各种模块进行组合,调用各种外部交互接口,这两种开源工具都非常擅长。

二者的差异点在于Python是一种通用型编程工具,R专注于数据领域;R有更为丰富的专业统计函数,Python则长于机器学习;R有更好的可视化包,Python正在快速追赶;Python和R的核心语法非常简洁,一些R包的语法则兼收并蓄,错综复杂。当你有时间的时候,双修是最好的选择。因为这两种工具类似于筷子和勺子的区别,在不同场景下使用某种工具更为有效。

R语言这个工具与其生态系统,在我先前的文章已经介绍了。下文简单介绍一下python的七个最为重要的数据分析模块,或者称之为七种武器。

一、Numpy

numpy是Python提供数值计算的基础模块,也是Python生态中历史最为悠久的模块,没有它,就没有办法做快速高效的向量化计算。它还提供了线性代数等高级矩阵运算功能,另外还能集成C的代码。Python的许多扩展模块都是基于Numpy开发的,所以学好Numpy就算是奠定好了根基。

二、SciPy

SciPy是基于Numpy开发的高级模块,它用于解决科学计算中的一些标准问题。例如数值积分和微分方程求解,扩展的矩阵计算,最优化,概率分布和统计函数,甚至包括信号处理。练习好SciPy和numpy,就足以解决常见的计算问题,并不需要自己哼哧哼哧造轮子写函数了。

三、  Matplotlib

做数据研究同样需要漂亮的可视化工具。Matplotlib是python下最著名的绘图库,提供了一整套和Matlab相似的API,十分适合交互式绘图。也可将它作为绘图控件,嵌入各种应用程序中。在其基础之上,还有更为有趣的绘图工具Seaborn和Bokeh。

四、Pandas

在数据整理阶段,我们经常需要连接、读取不同类型的数据源,处理不同格式的数据对象,如果只使用Numpy会很麻烦。Pandas使Python具备了类似R的数据框对象。这样方便用于数据处理和分析,它提供大量易用、高效的数据操作函数库,能执行join以及其他SQL类似的功能来重塑数据,支持各种格式的输入输出数据。它与Python生态中的其它模块也有很好的整合。

五、Statsmodels

Statsmodels是python中专门用于统计分析的模块,提供各种回归模型函数,包括广义回归和稳健回归,还提供大量时间序列分析函数,例如ARIMA/VAR,各种经典假设检验和非参数方法一个都不少。有了它,你可以随时和R说离别。

六、Scikit-learn

Scikit-learn是非常著名的机器学习库,它提供一个统一的接口来使用不同模型,有助于迅速地在数据集上应用流行的算法。它包含了许多用于标准机器学习任务的工具,例如聚类、分类和回归等。不仅是各种算法,机器学习中重要的特征选择和模型评估均在模块中包含了。值得一提的另一个模块gensim:提供了词向量、主题模型等函数。有了这两种模块,天下就绝没有不能解决的事。

七、TensorFlow

在Python生态中,未来最为看好的是TensorFlow。它作为谷歌出品的深度学习框架,一出世就备受瞩目。TensorFlow提供了C++和python两种接口,让你能高效的设计各种机器学习算法,并且能运行在各类硬件架构之上。此外还有各种强力组件搭配,TensorBoard用于监控学习过程中的各项参数,ensorServer可用于生产环境的模型部署,甚至传说还有TPU这种专门用于深度学习的芯片。

在数据江湖中,没有顺手的武器,英雄亦束手加班中。数据之道。主要是得看使用它的是什么人。

Python的主要库的更多相关文章

  1. Python底层socket库

    Python底层socket库将Unix关于网络通信的系统调用对象化处理,是底层函数的高级封装,socket()函数返回一个套接字,它的方法实现了各种套接字系统调用.read与write与Python ...

  2. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  3. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  4. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

  5. python使用cookielib库示例分享

    Python中cookielib库(python3中为http.cookiejar)为存储和管理cookie提供客户端支持,下面是使用示例 该模块主要功能是提供可存储cookie的对象.使用此模块捕获 ...

  6. Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED

    Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED 问题描述 使用pip按照virtualenv报错,如下: pip install virtua ...

  7. 【python】标准库的大致认识

    正如那句 Python 社区中很有名的话所说的:“battery included”,Python 的一大好处在于它有一套很有用的标准库(standard library).标准库是随着 Python ...

  8. Python 图形 GUI 库 pyqtgraph

    原文  Python 图形 GUI 库 pyqtgraph pyqtgraph 是纯 Python 图形 GUI 库,基于PyQT4 /pyside和NumPy.它主要目的用于在数学/科学/工程中.M ...

  9. python的urllib2库详细使用说明

    一直以来技术群里会有新入行的同学提问关于urllib和urllib2以及cookielib相关的问题.所以我打算在这里总结一下,避免大家反复回答同样的问题浪费资源. 这篇属于教程类的文字,如果你已经非 ...

  10. 升级python的sqlite库版本

    今天了解了一下用python获取chrome cookie信息,在研究的过程中,发现打开数据库失败,后来调查了一下发现是由于sqlite3库太老的缘故,起码需要3.8以上,然后看了一下python 2 ...

随机推荐

  1. Android与设计模式——单例(Singleton)模式

    概念: java中单例模式是一种常见的设计模式.单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类仅仅能有一个实例. 2.单例类必须自己自己创建自己的唯一实例. ...

  2. 基于IBM Bluemix的数据缓存应用实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:IBM® Data Cache for Bluemix 是快速缓存服务.支持 Web 和 ...

  3. BAPC2014 K&&HUNNU11591:Key to Knowledge(中途相遇法)

    题意: 有N个学生.有M题目 然后相应N行分别有一个二进制和一个整数 二进制代表该同学给出的每道题的答案.整数代表该同学的答案与标准答案相符的个数 要求推断标准答案有几个,假设标准答案仅仅有一种.则输 ...

  4. github如何多人开发一个项目

    github如何多人开发一个项目 一.总结 一句话总结:a.点项目里面的Settings->Collaborators,来添加参与者(比如github用户名), b.向他发送项目的link,让他 ...

  5. Django是什么

    Django是什么 Django是什么? 是基于python语言的优秀的web开发框架.很多有名的网站比如youtube就是用django开发的. Python写的开源Web应用框架, 快速搭建blo ...

  6. Tuples as return values

    Strictly speaking, a function can only return one value, but if the value is a tuple, the effect is ...

  7. 基于JavaSwing的例子-非连接数据库

    项目结构: Constant.java package com.mstf.test; import java.io.Serializable; public class Constant implem ...

  8. SSD-2(代码部分介绍)

    single shot multibox detectior tensorflow 代码 一.SSD重要参数设置 在ssd_vgg_300.py文件中初始化重要的网络参数,主要有用于生成默认框的特征层 ...

  9. Database Exception – yii\db\Exception

    在使用Yii2框架时遇到数据库无法访问的问题: 这个是由于 通常我们在参考 教程在 MAC OS LINUX下安装 MYSQL 时,默认将PHP.ini 中的以下三项留空导致的Yii2所需的PDO组建 ...

  10. iOS开发——NSString小结

    1.创建常量字符串. NSString *astring = @"This is a String!";   2.创建空字符串,给予赋值. NSString *astring = ...