Skip to content

前言

编写背景

如今,来自手机、互联网、物联网、科学实验、新闻等各处的信息每天创造着数以万亿字节的数据。在这万物互联的时代,信息技术将人类对数据的创造力一波又一波地推向新的巅峰。我们对计算机、手机中各种 App 的每一次点击与字符输入,对歌曲、文章的每一次点赞、喜欢、评论等操作都将零散单薄的数据汇入了信息的海洋,在大数据、人工智能技术的运用下激荡出新的浪花。而在这片汪洋大海下,数据科学成为沉淀下来的理论与科学基础。

作为当前最流行的编程语言之一,Python在过去几十年已被广泛应用于系统管理任务的处理和网络编程等领域,接触过网络 Web 编程读者想必很熟悉基于Python语言的 Django 框架。得益于机器学习、深度学习的兴起,近些年 Python 在科学计算领域绽放出新的光芒。在 IEEE 发布的 2017 年编程语言排行榜中,Python 高居首位。不同于 MATLAB 等商业软件,Python 是完全免费和开源的;不同于 R 等主要用于统计分析与建模的开源软件比较难以将成果扩展为完整的应用程序,Python 有着非常丰富的扩展库(模块),可以轻松完成各种高级任务,将项目的所有需求一起实现。

然而,国内少有聚焦于数据分析领域的 Python 图书,来自国外的译作大多起点较高,并不十分适合零基础的读者学习和使用。因此,我写作了本书——《交互的 Python:数据分析入门》。“交互”一词可能更容易让人们联想到“人机交互”,百度百科中的解释为“一门研究系统与用户之间交互关系的学问”。与普通的 Python 编程或其他编程(“编辑-编译-运行”的工作模式)有所不同,利用 Python 处理数据时,用户能够感受到一种极强的交互性,在数据分析时我们常常缺乏明确的目的和解决方案,因而不断地尝试各种分析——键入代码、查看结果、修正、重新运行查看结果,这一不断循环的过程往往是基于探索的,我们可以将其简化为“运行-探索”的工作模式。除此之外,动态文档是数据分析的一个新的流行趋势,普通的编程是进行应用程序的开发,数据分析则是进行数据的探索以及生成相关报表供用户阅读和研究。所以在本书的结构安排上,我添加了关于 Markdown 标记语言的内容。数据分析过程,就应当像写文章一样

谁当阅读此书

本书是 Python数据分析的入门教程,主要为新手设计,也同样适用于想要了解或者打算进入数据分析领域的程序员。注意,本书绝不是一本技术手册,其中没有讲解关于 Python 的所有领域的知识,比如网络编程、游戏编程、界面设计等;也不会事无巨细地讲解 Python 的所有基础知识,而是侧重于解读数据分析和科学计算知识。

本书特色

  1. 实例丰富,简单易懂。从简单的数据出发,让读者聚焦于思考、理解和掌握分析逻辑,简单易学,事半功倍。
  2. 循序渐进,深入浅出。本书的章节安排由易到难,由浅及深,主要采用 IPython Shell 展示代码,代码简洁优美,输入输出清晰易懂。
  3. 内容充实,全面覆盖。涵盖 Python 基础知识、数据导入、数据分析和可视化等方面的基础知识。
  4. 随学随用,举一反三。从简单的需求出发,阐述逻辑,实例方案可以作为模板初步应用到实际工作场景。本书将 Markdown 作为编程基础的一部分加以介绍,以使读者学会记录和分享知识。

内容简介

本书共分为 15 章。

  • 第 1 章介绍 Python 软件的安装与配置。
  • 第 2 章介绍 Python 的基本编程方式和数据类型。
  • 第 3 章介绍 Python 核心数据结构的使用,包括列表、元组、字典和集合。
  • 第 4 章介绍 Python 的条件判断与循环控制,这是任何语言都具备的核心语法,并简单介绍如何操作文件。
  • 第 5 章介绍 Python 函数的创建和使用、模块的下载和使用。
  • 第 6 章介绍 NumPy 库及其核心数据结构 ndarrary 的操作方法。
  • 第 7 章介绍 Matplotlib 库的应用场景和基本图形的绘制方法。
  • 第 8 章介绍 Pandas 库及其核心数据结构 Series 和 DataFrame 的基本操作方法,并讲解如何进行简单的统计分析。
  • 第 9 章介绍 Markdown 的语法和使用, Jupyter Notebook 的使用、记录和编程知识。
  • 第 10 章介绍如何将数据导入 Python 中,包括常见的 CSV、Excel 文件,网络数据常用的 JSON 文件和数据库。
  • 第 11 章介绍一些技巧性和高级编程知识,包括异常捕获、正则表达式和函数式编程等内容,以便读者更好地理解 Python,编写安全高效的代码。
  • 第 12 章深入介绍 Pandas 的数据结构和操作,讲解如何进行函数计算、数据清洗和简单的可视化。
  • 第 13 章简单介绍 3 个高级的可视化库 Seaborn、Plotnine 和 Bokeh ,并讲解如何使用它们绘制常见的图形。
  • 第 14 章简单介绍统计分析的基础理论知识,包括数据的描述性统计、分布和假设检验。
  • 第 15 章补充介绍一些内容,包括 IPython 的魔术命令和面向对象编程知识。

建议和反馈

写书是一项繁琐的工作,尽管我已力求本书内容简明、生动、准确,但限于个人水平,难免有错漏之处,恳请各位读者批评指正。读者若有任何关于本书的反馈意见,请提交至异步社区的本书页面中,这将有利于我改进本书,使更多读者受益。

致谢

本书的内容基于 Python 和诸多第三方库,在此感谢 Python 积极活跃的数据科学生态,系统以及 NumPy、Pandas、Matplotlib、Plotnine 和 Seaborn 等第三方库的作者们。

感谢出版社的张爽编辑,她对于本书内容的把握和细节的重视极大地提高了本书的质量。

感谢简书的毛晓秋女士和其他工作人员,如果不是他们的努力和鼓励,本书可能很难与众位读者见面。

最后,感谢我的女朋友,如果不是她时刻的敦促,我也许无法创作一本书投入持续的热情和精力;感谢我的家人,他们在远方的陪伴,是我能够写作的最坚实的动力。

王诗翔

2020年1月于上海