在这最后一章,这本书接近尾声。我将首先回顾我在前面十章中讨论的内容,然后给你三条建议,并提供一些资源来进一步探索我们触及的相关主题。最后,如果您有任何问题、评论或新的命令行工具要分享,我提供了一些与我联系的方法。
11.1 让我们回顾一下
这本书探索了使用命令行进行数据科学的能力。我发现这是一个有趣的观察,这个相对年轻的领域提出的挑战可以通过这样一个经过时间考验的技术来解决。我希望您现在看到了命令行的能力。许多命令行工具提供了各种可能性,非常适合包括数据科学在内的各种任务。
数据科学有许多可用的定义。在第一章中,我介绍了 Mason 和 Wiggins 定义的 OSEMN 模型,因为它非常实用,可以转化为非常具体的任务。首字母缩写 OSEMN 代表获取、清理、探索、建模和解释数据。第一章也解释了为什么命令行非常适合做这些数据科学任务。
在第二章中,我解释了如何获得本书中使用的所有工具。第二章还介绍了命令行的基本工具和概念。
OSEMN 模型的四个章节着重于使用命令行执行这些实际任务。我没有专门用一章来讨论第五步,解释数据,因为,坦率地说,计算机,更不用说命令行,在这里几乎没有用处。然而,我提供了一些关于这个主题的进一步阅读的提示。
在 intermezzo 的四个章节中,我们讨论了在命令行中进行数据科学的一些更广泛的主题,这些主题并不真正特定于某个特定的步骤。在第四章中,我解释了如何将一行程序和现有代码转化为可重用的命令行工具。在第六章中,我描述了如何使用名为make
的工具管理数据工作流。在第八章中,我演示了如何使用 GNU Parallel 并行运行普通的命令行工具和管道。在第十章中,我展示了命令行并不存在于真空中,而是可以在其他编程语言和环境中使用。这些 intermezzo 章节中讨论的主题可以应用于数据工作流中的任何一点。
不可能展示所有可用的与数据科学相关的命令行工具。每天都有新的工具产生。现在你可能已经明白,这本书更多的是关于使用命令行的思想,而不是给你一个详尽的工具列表。
11.2 三条建议
你可能已经花了相当多的时间阅读了这些章节,并且可能还阅读了代码示例。希望它能最大化这项投资的回报,并增加您继续将命令行整合到您的数据科学工作流中的可能性,我想向您提供三条建议:(1)耐心,(2)创新,以及(3)务实。在接下来的三个小节中,我将详细阐述每一条建议。
11.2.1 耐心
我能给的第一条建议是要有耐心。在命令行上处理数据不同于使用编程语言,因此需要不同的思维方式。
此外,命令行工具本身也有一些奇怪和不一致的地方。这部分是因为它们是由许多不同的人在几十年的时间里开发出来的。如果你发现自己对这些令人眼花缭乱的选项不知所措,别忘了使用--help
、man
、tldr
或你最喜欢的搜索引擎来了解更多。
然而,尤其是在开始的时候,这可能是一次令人沮丧的经历。相信我,随着您练习使用命令行及其工具,您会变得更加熟练。命令行已经存在了几十年,并且还会继续存在下去。这是一项值得的投资。
11.2.2 创新
第二个相关的建议是要有创造性。命令行非常灵活。通过组合命令行工具,您可以完成比您想象的更多的事情。
我鼓励你不要马上回到你的编程语言。当你不得不使用一种编程语言时,考虑一下代码是否可以以某种方式通用化或重用。如果是这样,考虑使用我在第四章中讨论的步骤,用这些代码创建你自己的命令行工具。如果你认为你的工具对其他人有益,你甚至可以更进一步,把它开源。也许您知道如何在命令行执行某个步骤,但是您不愿意离开您正在工作的主要编程语言或环境。也许你可以使用第十章中列出的方法之一。
11.2.3 务实
第三条建议是要务实。务实与创新相关,但值得单独解释。在前面的小节中,我提到过你不应该马上退回到编程语言。当然,命令行有其局限性。在整本书中,我一直强调命令行应该被看作是进行数据科学的一种伴随方法。
我已经讨论了在命令行中进行数据科学的四个步骤。实际上,命令行对于步骤 1 的适用性比步骤 4 更高。你应该使用最适合手头任务的方法。在工作流程中的任何一点上混合搭配方法都是非常好的。正如我在第十章中所展示的,命令行在与其他方法、编程语言和统计环境的集成方面非常出色。每种方法都有一定的权衡,精通命令行的一部分是学习何时使用哪种方法。
总之,当您有耐心、有创造力并且务实时,命令行将使您成为更高效和多产的数据科学家。
11.3 何去何从?
由于这本书是关于命令行和数据科学的交集,许多相关的主题只是被触及。现在,由您来进一步探索这些主题。以下小节提供了主题列表和建议参考的资源。
11.4 命令行
- 《Linux 命令行:完全介绍》,第二版,作者:小威廉·E·肖特(No Starch 出版社,2019 年)
- Jerry Peek、Shelley Powers、Tim O’Reilly 和 Mike Loukides 编写的 《Unix Power Tools》,第三版(O’Reilly Media,2002 年)
- Arnold Robbins、Elbert Hannah 和 Linda Lamb 编写的《学习 Vi 和 Vim 编辑器》第 7 版(O’Reilly Media,2008 年)
11.4.1 Shell 编程
- Arnold Robbins 和 Nelson H.F. Beebe (O’Reilly Media,2005)编写的《经典 Shell 脚本》
- 戴维·泰勒和布兰登·佩里的《邪恶酷壳剧本》第二版(No Starch 出版社,2017)
- Carl Albing JP Vossen 的《Bash Cookbook》(O’Reilly Media,2018 年)
11.4.2 Python、R 和 SQL
- Zed A. Shaw(Addison-Wesley Professional,2017 年)的《本办法学 Python 3》
- 《Python 数据分析》,第二版作者 Wes McKinne(O’Reilly Media,2017 年)
- 《从零开始的数据科学》,第二版乔尔·格鲁什著(O’Reilly Media,2019 年)
- Garrett Grolemund 和 Hadley Wickham (O’Reilly Media,2016 年)
- 杰瑞德·兰德(Addison-Wesley Professional,2017 年出版)的《人人有责》第二版
- 《Sams 每天 10 分钟自学 SQL》,第五版本·福塔著(Sams,2020 年)
11.4.3 API
- Matthew A. Russell 和 Mikhail Klassen 的《社交网络挖掘》第三版(O’Reilly Media,2019)
- 皮特·沃顿的《数据源手册》(O’Reilly Media,2011 年)
11.4.4 机器学习
- 《Python 机器学习》,第三版 Sebastian rasch ka 和 Vahid Mirjalili 著(Packt 出版社,2019 年)
- 克里斯托弗·M·毕晓普(施普林格,2006 年)的《模式识别和机器学习》
- 《信息理论、推理和学习算法》(剑桥大学出版社,2003 年)
11.5 取得联系
如果没有创建命令行和众多工具的许多人,这本书是不可能的。可以肯定地说,当前用于数据科学的命令行工具生态系统是一个社区成果。我只能让您对许多可用的命令行工具有所了解。每天都有新的创造,也许有一天你自己也会创造一个。那样的话,我很乐意收到你的来信。如果您有任何问题、意见或建议,都可以给我写信,我将不胜感激。有几种联系方式:
- 电子邮件:jeroen@jeranssens.com
- Twitter:@jerenjanssens
- 图书网站:https://datascienceatthecommandline.com/
- 预订 GitHub 资源库:https://gitHub.com/jeroenjanssens/data-science-at-the-command-line
谢谢你。