Python语言是一种强大而简洁的编程语言。据IEEE Spectrum消息,Python在2020年继续蝉联最受欢迎的编程语言第一名。对于刚接触Python的新手来说,配置一个容易上手又适合自己的开发环境无疑是成功掌握这门编程语言的第一步。对于Python IDE的比较和推荐,各路高手也说法不同,其中被推荐频率最高的当属Pycharm、VS Code和Jupyter Notebook了。
Jupyter Notebook对于Python用户来说想必也不算太陌生。在深度学习领域,吴恩达老师在Cousera上发布的系列课程已经成为公认的入门必学内容。大家可能也注意到了,在《神经网络和深度学习》的第二节课中他专门为学生录制了一个使用Jupyter Notebook的快速指南,并且在很多课程中都通过Jupyter Notebook展示代码实现的部分!
这个像笔记本一样又能写文档又能运行代码的工具是怎么来的呢?在Jupyter项目创立之初,创始人Fernando Pérez希望能够在同一个计算工具平台上融合Ju(Julia)、Py(Python)和R这三种科学运算语言的,并且向伽利略发现木星(Jupiter)卫星时所用的笔记本致敬,因此创造了Ju-Py-te-R这个名字。不过经过了五年的发展,现在Jupyter能够支持的语言已经多达四十种,成为一个能够把软件代码、计算输出、解释文档、多媒体资源整合在一起的多功能科学运算平台。
看过了吴恩达在Jupyter Notebook上的演示后,你会发现它最大的特点便是可以直接在Web浏览器上编辑和运行,并且允许用户把代码写入独立的单元格中单独执行。这意味着每个格子里都可以编写完马上执行,验证我们的思路是否有问题,并且查看变量的输出情况是否符合预期判断。
如果单元格里的代码有语法错误,运行后在格子下方会直接显示错误提示信息,就像下面这样。由于每个代码块都是单独运行测试的,所以如果查找错误我们也无需从头开始执行代码或者手动增加断点进行调试。这个写代码——运行——确认结果/修改代码——在下一个格子里写代码的过程便称为交互式编程。
Jupyter Notebook提供的交互环境是它的重要功能,也是它在数据分析任务中格外受到欢迎的原因之一。在Notebook中可以方便地调用Python的第三方库,如pandas、Bokeh等,对数据进行清理、统计和可视化的操作,并且在单元格中可以分步输出变量或者绘制图表等等。
对于数据分析工程师自身来说,这样既可以验证该步骤中的思路是否有问题,又可以通过输出的直观结果(变量值、图形等)构思后面的步骤怎样执行,极大地提高了任务的整体工作效率。
除了代码之外,你应该也很好奇为什么吴恩达老师的Notebook看起来像一份包含了标题和章节完整讲义吧?这需要归功于Jupyter Notebook对Markdown语言的支持。Markdown是一种轻量级标记语言,非常简洁易学,常用于技术文档的写作。基于Markdown语法也衍生出了许多对其功能进行扩展的语法,其中Jupyter Notebook使用的是以GitHub为主要风格的GFM语法。
只需要在工具栏中将单元格的格式指定为Markdown,就可以在格子中输入注释、笔记等一切你想要添加的文本,简洁的Markdown语法能帮助你更专注于文本内容。在内容输入完成后运行该单元格,具有格式的文本则会以html的形式显示。另外如果想要上传图片,直接将图片拖拽到Markdown格式的单元格内即可。
掌握了这些功能,你就有机会高效地进行数据分析。同时,在团队沟通和教学展示等环境下,你可以在Jupyter Notebook的界面上快速地复现全部分析过程,并且通过文字叙述、可视化内容、数学公式与代码的整合来降低理解门槛、提高沟通效率。
Jupyter Notebook在数据分析场景下的卓越优势是Pycharm、Vim等其他编辑器所无法匹敌的。这种设计思想也来自于文式编程的范式,即在代码中穿插着对代码逻辑的自然语言解释和宏片段,从而使编码者能够以更贴近人类思维习惯的方式进行工作。这种方式特别适用于科学计算和开发开源软件等场景。
Python新手想动手拥有和吴恩达同款的生产工具,可以从这本书开始。《Jupyter Notebook数据分析入门与实战》重点介绍了如何使用Jupyter Notebook 进行数据可视化分析,以及自定义Jupyter Notebook、使用云端Jupyter Notebook等一系列实用操作。
《Jupyter Notebook数据分析入门与实战》
这本书对新手的友善度非常高,作者先从Jupyter Notebook的安装和基础操作讲起。读者对照本书一边阅读一边动手实践即可快速入门,Jupyter Notebook中特有的快捷操作和魔术命令也可以一网打尽。
掌握了基本的Notebook操作后我们就可以让代码跑起来了。之后作者依次介绍了使用pandas、Matplotlib和Bokeh三个Python库进行数据分析和可视化的方法,并且根据自己丰富的经验归纳了许多常见问题,比如在绘图时中文出现乱码、输出结果中子图边缘重叠等等。作者针对这些新手上路时常令人苦恼的“坑”给出了详细的解决方法,使刚上手的读者顺利“出坑”从而信心大增。
pandas、Matplotlib和Bokeh都是在数据分析中通用程度高、广受欢迎的Python库,其中许多进阶功能即使是Python和Jupyter Notebook的老用户也不一定掌握,比如绘制特殊图形、合并不同类型图形、设定颜色和颜色映射等等。跟随本书熟练使用这些技巧,就可以在数据分析报告中展示“如何优雅地使用Jupyter Notebook”了。
对于有志于从事科学计算或是数据分析的人员来说,Jupyter Notebook是业界公认的不二之选。这本《Jupyter Notebook数据分析入门与实战》可以成为新手入门之路上的一趟直通车,使你在生产工具上与吴恩达等领军人物并肩。