数据科学开发新标准:Jupyter Notebook

IPython 是一个 Python 库,最初旨在改进 Python 提供的默认交互式控制台并使其对科学家友好。 在2011年,IPython 首次发布10年后,IPython Notebook 被引入。 这个基于 Web 的 IPython 接口把代码,文本,数学表达式,内联图,交互式图形,小部件,图形界面以及其他丰富的媒体集成到一个独立的可共享的 Web 文档中。 该平台为交互式科学计算和数据分析,乃至当前火热的深度学习与新一代人工智能提供了理想的门户。 改名为 Jupyter Notebook 的 IPython 已经成为研究人员,工程师,数据科学家,教师和学生不可或缺的一部分。

时至今天,Jupyter 本身就是一个生态系统,具有几种可供选择的 Notebook 界面(JupyterLab,nteract,Hydrogen 等),交互式可视化库,与 Notebook 兼容的创作工具。除了Jupyter Notebook 的丰富传统以及它为开发人员提供的更丰富的生态系统之外,还有十个理由让数据科学开始将 Jupyter 用于数据科学项目开发。

  1. 聚合所有元素:Jupyter 笔记本是一个基于 Web 的交互式环境,它将代码,富文本,图像,视频,动画,数学公式,图表,地图,交互式图形和小部件以及图形用户界面组合成一个文档。
  2. 易于共享:笔记本保存为结构化文本文件(JSON格式),这使得它们可以轻松共享。
  3. 易于转换:Jupyter 附带了一个特殊的工具 nbconvert,可将 notebook 转换为其他格式,如 HTML 和PDF。 另一个在线工具 nbviewer 允许我们直接在浏览器中渲染一个公共可用的笔记本。
  4. 独立于语言:Jupyter 的架构与语言无关。 客户端和内核之间的解耦使得用任何语言编写内核成为可能。同时,对R,Julia,Python 具有天然的支持。
  5. 易于创建内核包装器:Jupyter 为可以用 Python 包装的内核语言提供了一个轻量级接口。 包装内核可以实现可选的方法,特别是代码完成和代码检查。
  6. 易于定制:Jupyter 界面可用于在 Jupyter Notebook(或其他客户端应用程序,如控制台)中创建完全定制的体验。
  7. 魔术命令:使用自定义魔术命令创建 IPython 扩展,使交互式计算变得更加简单。 许多第三方扩展和魔术命令都存在,例如,允许在笔记本中直接编写 Cython 代码的 %% cython。
  8. 轻松复现实验结果:Jupyter 笔记本可以帮助您轻松进行高效且可重复的交互式计算实验。 它可以让你保存你的工作的详细记录。 此外,Jupyter Notebook 的易用性意味着您不必担心可重复性; 只需在笔记本上做所有的互动工作,将它们置于版本控制之下,并定期提交。 不要忘记将代码重构为独立的可重用组件。
  9. 有效的教学和学习工具:Jupyter 笔记本不仅是科学研究和数据分析的工具,而且是教学的好工具。越来越多的教育企业与机构开始采用 Jupyter 开发先进的教育资源。
  10. 交互式代码和数据探索:ipywidgets 包提供了许多用于交互式浏览代码和数据的通用用户界面控件。

正因如此,跨象乘云™ 也将 Jupyter Notebook 作为深度学习与新一代人工智能科研教学一体化实验平台的交互式编程实验环境的核心部件。