数据科学概述

本文主要参考自 Python Data Science Handbook by Jake VanderPlas (O’Reilly).Copyright 2017 Jake VanderPlas,978-1-491-91205-8

Github:https://github.com/jakevdp/PythonDataScienceHandbook

一、什么是数据科学?

数据科学下定义是一件困难的事,尤其在它现在这么流行的时候。数据科学可能算是目前为止对跨学科技能的最佳称呼,无论是在工业界还是在学术界。跨学科是数据学科的关键,一个不错的定义是 Drew Conway 在 2010 年 9 月提出来的:

数据学科综合了三个领域的能力:

  • 统计学家的能力:建立模型和聚合(数据量正在不断增大的数据库)
  • 计算机科学家的能力:设计并使用算法对数据进行高效存储、分析和可视化
  • 领域专家的能力:在细分领域经过专业训练,既可以提出正确的问题,也可以做出专业的回答

数据科学不是一个新的知识领域,我们可以把它看成在自己熟悉领域中运用的新能力。无论你是在:

  • 汇报竞选结果
  • 预测股票收益
  • 优化点击率
  • 识别微生物
  • 寻找新天体

还是在其他数据相关的领域中工作,我们都可以利用数据科学发现问题,并且具备解决问题的能力。

二、Python 是什么?

Python 是一种广泛使用的解释型、高级编程、通用型编程语言。

Python logo

Python 是龟叔于在 1989 年圣诞节创造出的一种广泛使用的解释型、高级编程、通用型编程语言。

Guido 为了打发圣诞节的无趣,决定开发一个新的解释型语言,由于他是 Monty Python 喜剧团体的爱好者,所以取名誉 Python(巨蟒)。 Python 目前是由一个核心开发团队在开发与维护,Guido van Rossum 一直以来被称为 Python仁慈的独裁者(Benevolent Dictator For Life),龟叔最近刚刚宣布从 Dropbox 退休

三、为什么选择 Python?

Python 由于其简单优雅的特点,吸引了大量的使用者。再加上最近几年机器学习、人工智能领域的大热,Python 变得更为炙手可热。

Python 之所以能在数据科学领域广泛使用,主要是由于它的第三方包拥有庞大而活跃的生态系统:

  • NumPy:处理同类型数组型数据型号数据
  • Pandas:处理多种类型带标签的数据
  • SciPy:解决常见的科学计算问题
  • MatplotLib:绘制用于印刷的可视化图形
  • IPython:实现交互式编程和快速分享代码
  • Scikit-Learn:可以进行机器学习

关于 Python 的更多参考资料如下:

  1. web https://www.python.org
  2. docu Python documentation
  3. en_doc Python For Beginners
  4. en_doc realpython
  5. cn_doc 廖雪峰的 Python 教程

  6. cn_doc 李笑来:自学是门手艺

  7. git Python
  8. wiki Python

四、利用 Anaconda 安装 Python

安装 Python 其实很简单,安装上面给出的文档一步一步操作即可。虽然安装 Python 的方法有很多,但在数据科学方面,Anaconda 发行版是一个不错的的选择。

Conda 是一个集包管理、依赖管理、环境管理等功能于一身的集成工具。

conda logo

Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.

Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.

如果你在物品中需要使用不同的 Python 环境,那么 Conda 绝对是一个非常合适的助手,它可以方便的帮助你切换不同的 Python 环境,方便的进行包管理、依赖管理。此外,Anaconda 是目前世界上最流行的数据科学平台,而且它会内置一些常见的科学计算基础包,非常适合新手使用。

Anaconda 发行版有两种:

  • Miniconda:只包含 Python 解释器和一个名为 conda 的命令行工具。conda 是一个跨平台的程序包管理器,可以管理各种 Python 程序包。
  • Anaconda:除了包含 Python 和 conda 之外,还同时绑定了四五百个科学计算程序包。

可以根据自己的需求选择安装其中一个发行版,下面是更多详细的参考资料:

  1. web https://conda.io
  2. docuGetting started with conda
  3. en_doc安装文档
  4. en_docConda Cheat sheet
  5. git conda
  6. wiki conda

五、Anaconda 与 pip 的对比

根据anaconda 官方的文档,anaconda 与 pip 的主要区别如下:

conda pip
manages binaries wheel or source
can require compilers no yes
package types any Python-only
create environment yes, built-in no, requires virtualenv or venv
dependency checks yes no
package sources Anaconda repo and cloud PyPI

总结来说,anaconda 提供了二进制的包,不存在编译过程,因此可以有很好的兼容性,同时还提供虚拟环境支持,这就是 anaconda 的核心优势。


最后更新: 2019-12-31

评论