大数据时代,数据科学研究与分析日益重要。本书独树一帜,教你利用灵活的命令行工具成为高效多产的数据科学家。
为此,作者开发了数据科学工具箱,一个包含80多个命令行工具的安装简单的虚拟环境,能在Windows、OS X和Linux操作系统上运行。你将学会如何结合使用这些小而强大的命令行工具,快速地获取、清洗、探索和建模数据。
通过阅读本书,你会明白为什么命令行是一种灵活、可伸缩、易扩展的技术。即使你已经能够使用Python或R得心应手地处理数据,利用命令行也将大大改进你的数据科学工作流。
《命令行中的数据科学》集实用性和先进性于一身,为数据分析人员使用命令行这个灵活的工具提供了重要参考。作者讲解了众多实用的命令行工具,以及如何使用它们高效地获取、清洗、探索和建模数据。论你使用Windows、OS X,还是Linux,都可以安装包含80多个命令行工具的“数据科学工具箱”,迅速建立自己的数据分析环境。论你是否已经习惯于使用Python或R语言,都能够通过本书体会到使用命令行的快捷、灵活与伸缩自如。
数据科学是个激动人心却又非常年轻的领域。不幸的是,许多个人和公司,总是认为需要利用新技术才能解决数据科学提出的问题。实际上,正如本书所揭示的,许多问题使用命令行就能解决,而且有时候效率要高得多。
大约5 年前,在攻读博士学位期间,我逐步从使用微软Windows 转为使用GUN/Linux。刚开始我有点谨小慎微,因此同时安装了这两个操作系统(也就是双系统启动)。后来,在这两个系统之间切换的需求越来越少,有时我甚至对Arch Linux 修修补补,能从零开始自己定制操作系统。这时能用的只有命令行,而且想做什么完全随心所欲。很快,我就对使用命令行得心应手。最终,由于业余时间越来越宝贵,我决定使用名为Ubuntu 的GNU/Linux 发行版,因为它易于使用并且有庞大的社区。尽管如此,命令行仍然是我完成绝大部分工作的不二选择。
实际上,我后来认识到,命令行不单可以用于安装软件、配置系统以及搜索文件。于是我开始学习诸如cut、sort 和sed 这些命令行工具。这些工具都是将数据作为输入,对数据进行处理,然后打印结果。Ubuntu 自带了相当多这样的工具。当明白可以将这些小工具结合起来使用时,我就对它入迷了。
当我拿到博士学位,成为一名数据科学家时,我想充分利用这种方法来做数据科学工作。
幸亏有几个新的开源命令行工具,包括scrape、jq 和json2csv,我甚至能够使用命令行来完成抓取网站以及处理大量JSON 数据这样的任务。2013 年9 月,我写了一篇名为“数据科学的7 个命令行工具”的博客文章(http://jeroenjanssens.com/2013/09/19/seven-commandline-tools-for-data-science.html)。让我吃惊的是,这篇文章获得很大反响。后来许多人向我推荐其他命令行工具,于是我开始考虑是否可以将这篇文章扩充成书。令人高兴的是,10个月之后,在许多才华横溢的人的帮助下(参见“致谢”),本书得以付梓。
分享这段个人经历不仅是想介绍本书的由来,更是希望你知道我也是需要学习命令行的。使用命令行与使用图形化用户界面迥然不同,刚开始可能是令人生畏的。但是,既然我能够学会它,你当然也没问题。不管你目前使用的是什么操作系统,也不管你现在是以什么方式做数据科学的工作,读完本书,你也能够利用命令行的强大能力。即使你已经熟悉命令行,或者甚至已经打算学习shell 脚本,你仍然可能在书中发现一些有趣技巧或命令行工具,能用于未来的数据科学项目。
从本书可以学到的
书中将对大量数据进行获取、清洗、探索以及建模。我们不会过多介绍如何完成这些数据科学任务,因为对于诸如应该何时及用什么进行统计检验,或者怎样才能将数据可视化做到最好,很容易找到大量参考资料。本书致力于实用性,旨在通过教你用命令行执行数据科学任务,使你更加高效和多产。
尽管书中讨论了80 多个命令行工具,但这些工具本身并不是最重要的。有些命令行工具存在已久,有些则是新近出现,并且可能最终会被更好的工具所取代。甚至在你阅读本书的时候,有的命令行工具正在创建之中。在过去的10 个月里,我就已经发现了许多奇妙的命令行工具。遗憾的是,有的工具被发现的时间太晚,无法包含在本书中。总之,命令行工具的新陈代谢是常态。
用工具、管道和数据进行工作的思想才是最重要的。多数命令行工具只做一项任务,并且做得很好。这符合Unix 的理念,这种理念在书中许多地方都有体现。一旦熟悉了命令行,并且学会了如何将命令行工具结合起来,你就学会了一项非常宝贵的技能。如果还能创建新的工具,那你就出类拔萃了。
……
★“命令行体现了Unix‘简单工具’的理念,即每个工具完成一项工作,然后巧妙地连接在一起。Jeroen很专业地讨论了怎样将这个理念引入数据科学工作,展示了为什么命令行不仅能够进行简单的文件输入/输出,还是数据操作、探索,甚至建模的利器。”
——Chris H. Wiggins,《纽约时报》首席数据科学家,哥伦比亚大学应用物理学与应用数学系副教授
★“这本书讲解了如何将常见的数据科学任务集成到一个连贯的工作流,涵盖了分解问题和组合方案的策略。”
——John D. Cook,知名应用数学、统计及软件开发咨询顾问