【机器学习】针对数据科学/机器学习的Jupyter NoteBook 入门指南

介绍

人们提出的最常见问题之一是在处理数据科学项目时使用哪个IDE /环境/工具。正如您所期望的那样,没有任何可用选项 - 从R Studio,PyCharm等语言特定的IDE到Sublime Text或Atom等编辑器 - 这种选择对于初学者来说可能是令人生畏的。

如果有一个工具,每个数据科学家应该使用或必须使用,它是Jupyter笔记本电脑(以前称为iPython笔记本电脑)。Jupyter笔记本电脑功能强大,功能多样,可共享,并提供在同一环境中执行数据可视化的功能。

Jupyter笔记本允许数据科学家创建和共享他们的文档,从代码到完整的报告。它们帮助数据科学家简化工作,提高生产力和轻松协作。由于这些以及其他几个原因,您将在下面看到,Jupyter笔记本是数据科学家中最受欢迎的工具之一。

 

在本文中,我们将向您介绍Jupyter笔记本电脑,并深入介绍它的功能和优点。

当您到达文章的最后时,您将很好地了解为什么要将它用于您的机器学习项目以及为什么Jupyter笔记本被认为比该领域中的其他标准工具更好!

你准备好学习了吗?让我们开始!

 

目录

  • 什么是Jupyter Notebook?
  • 如何安装Jupyter Notebook?
  • 入门!
  • 使用魔术功能
  • 不仅限于Python - 在笔记本中使用R,Julia和JavaScript
  • Jupyter Notebook中的交互式仪表板 - 为什么不呢?
  • 键盘快捷键 - 节省时间,提高工作效率!
  • 有用的Jupyter Notebook扩展
  • 保存和共享您的Notebook
  • JupyterLab - Jupyter Notebook的演变
  • 最佳实践和技巧

什么是Jupyter Notebook

Jupyter Notebook是一个开源Web应用程序,允许我们创建和共享代码和文档。

它提供了一个环境,您可以在其中记录代码,运行代码,查看结果,可视化数据并查看结果,而无需离开环境。这使其成为执行端到端数据科学工作流程的便利工具 - 数据清理,统计建模,构建和培训机器学习模型,可视化数据以及许多其他用途。

当你还处于原型设计阶段时,Jupyter Notebook真的很闪耀。这是因为您的代码是在独立单元格中编写的,这些单元格是单独执行的。这允许用户测试项目中的特定代码块,而无需从脚本的开头执行代码。许多其他IDE环境(如RStudio)也以多种方式实现这一点,但我个人发现Jupyter的单个单元格结构是最好的。

正如您将在本文中看到的,这些笔记本是数据科学家手中非常灵活,交互式和强大的工具。它们甚至允许您运行除Python之外的其他语言,如R,SQL等。由于它们比IDE平台更具交互性,因此它们被广泛用于以更加教学的方式显示代码。

 

如何安装Jupyter Notebook

正如您现在可能已经猜到的那样,您需要先在计算机上安装Python。Python 2.7或Python 3.3(或更高版本)都可以。

Python

对于新用户,普遍的共识是您应该使用Anaconda发行版安装Python和Jupyter Notebook

Anaconda安装了这两种工具,并包含了数据科学和机器学习社区中常用的大量软件包。您可以从这里下载最新版本的Anaconda 。

 

PIP方法安装

如果由于某种原因,您决定不使用Anaconda,那么您需要确保您的机器运行最新的pip版本。你是怎样做的?如果你已经安装了Python,那么pip就已存在。要升级到最新的pip版本,请按照以下代码:

#Linux and OSX
pip install -U pip setuptools

#Windows
python -m pip install -U pip setuptools

一旦pip准备就绪,你可以继续安装Jupyter:

#For Python2
pip install jupyter

#For Python3
pip3 install jupyter

您可以在此处查看官方Jupyter安装文档。

 

入门!

我们现在已经了解了这些笔记本电脑的用途以及如何在我们自己的机器上进行设置。是时候开始派对了!

要运行你的Jupyter笔记本,只需输入以下命令就可以了!

jupyter notebook

执行此操作后,Jupyter笔记本将在默认Web浏览器中打开,并显示以下URL:

http://localhost:8888/tree

在某些情况下,它可能无法自动打开。将使用令牌密钥在终端/命令提示符中生成URL。打开Notebook时,您需要将整个URL(包括令牌密钥)粘贴到浏览器中。

打开Notebook后,您会在顶部看到三个选项卡:Files,Running和Clusters。文件基本上列出了所有文件,Running显示您当前打开的终端和笔记本,而Clusters由IPython parallel提供。

要打开新的Jupyter笔记本,请单击页面右侧的“新建”选项。在这里,您有四个选项可供选择:

  • Python 3
  • Text File
  • Folder
  • Terminal

在文本文件中,您将获得一个空白的平板。添加您希望的任何字母,单词和数字。它基本上用作文本编辑器(类似于Ubuntu上的应用程序)。你也可以选择一种语言(有很多给你的语言),所以你可以写一个脚本。您还可以在文件中查找和替换单词。

在“文件夹”选项中,它执行名称所暗示的操作。您可以创建一个新文件夹来放置文档,重命名并删除它,无论您的要求是什么。

终端的工作方式与Mac或Linux计算机上的终端完全相同(Windows上的cmd)。它可以在您的Web浏览器中支持终端会话。类型蟒蛇在这个终端,瞧!您的python脚本已准备好编写。

但在本文中,我们将专注于笔记本,因此我们将从“新建”选项中选择Python 3选项。您将看到以下屏幕:

然后,您可以通过导入最常见的Python库来启动:pandas和numpy。在代码上方的菜单中,您可以选择使用单元格:添加,编辑,剪切,上下移动单元格,在单元格中运行代码,停止代码,保存工作并重新启动内核。

在下拉菜单中(如上所示),您甚至有四个选项:

  • Code - 这是不言自明的; 它是您键入代码的地方
  • Markdown - 这是您键入文本的位置。您可以在运行代码,添加注释等后添加结论。
  • Raw NBConvert - 这是一个命令行工具,可以将笔记本转换为另一种格式(如HTML)
  • Heading - 这是您将标题添加到单独的部分并使您的笔记本看起来整洁和整洁的地方。现在这已经转换为Markdown选项本身。添加'##'以确保在此之后键入的任何内容都将被视为标题

 

使用Jupyter Notebook的魔术功能

开发人员已经插入了预定义的魔术功能,使您的生活更轻松,您的工作更具互动性。您可以运行以下命令查看这些函数的列表(注意:通常不需要“%”因为通常打开Automagic):

%lsmagic

您会看到列出的很多选项,您甚至可能会认识到一些!像%clear,%autosave,%debug和%mkdir这样的函数是你以前必须看到的。现在,魔术命令以两种方式运行:

  • Line-wise
  • Cell-wise

顾名思义,行式是指您想要执行单个命令行,而单元格则是当您不仅要执行一行而是执行整个单元格中的整个代码块时。

在行中,所有给定的命令必须以%字符开头,而在单元格中,所有命令必须以%%开头。让我们看下面的例子来更好地理解:

线路明智的:

%time a = range(10)

小区方式:

%%timeit a = range (10)
min(a)
我建议你运行这些命令,看看自己的区别!

 

不仅限于Python —— 在笔记本中使用R,Julia和JavaScript

魔术并不止于此。您甚至可以在笔记本中使用其他语言,例如R,Julia,JavaScript等。我个人喜欢R中的'ggplot2'软件包,因此使用它进行探索性数据分析是一项巨大而巨大的奖励。

要在Jupyter中启用R,您需要GitHub上提供的'IRKernel'(R的专用内核)。这是一个8步骤的过程,已经详细解释,并附有屏幕截图来指导您,这里

如果您是Julia用户,也可以在Jupyter笔记本中使用它!查看这篇专注于为Julia用户学习数据科学的综合性文章,并介绍如何在Jupyter环境中利用它。

如果您更喜欢使用JavaScript,我建议使用'IJavascript'内核。查看此GitHub存储库,它将引导您完成在不同操作系统上安装此内核所需的步骤。请注意,在能够使用它之前,您需要安装Node.jsnpm

 

Jupyter笔记本中的交互式仪表板 - 为什么不呢?

在添加小部件之前,您需要导入小部件包:

from ipywidgets import widgets

小部件的基本类型是典型的文本输入,基于输入和按钮。请参阅以下有关Dominodatalab的示例,了解交互式小部件的外观:

您可以在此处查看小部件的综合指南。

 

键盘快捷键 - 节省时间,提高工作效率!

快捷方式是Jupyter笔记本电脑的最佳选择之一。如果要运行任何代码块,只需按Ctrl + Enter即可。Jupyter笔记本提供了更多的键盘快捷键,为我们节省了大量时间。

以下是我们亲自挑选的一些快捷方式,这些快捷方式在您开始时对您非常有用。我强烈建议您逐一阅读这些内容。如果没有他们,你不会知道你的生活!

Jupyter笔记本提供两种不同的键盘输入模式 - 命令和编辑。命令模式将键盘绑定到笔记本级别命令,并由带有蓝色左边距的灰色单元格边框指示。编辑模式允许您在活动单元格中键入文本(或代码),并由绿色单元格边框指示。

分别使用Esc和Enter在命令和编辑模式之间切换。马上就试试吧!

一旦处于命令模式(即,您没有活动单元格),您可以尝试以下快捷方式:

  • A将在活动单元格上方插入新单元格,B将在活动单元格下方插入一个单元格
  • 要删除单元格,请连续按两次D键
  • 要撤消已删除的单元格,请按Z.
  • Y将当前活动的单元格转换为代码单元格
  • 按住Shift +向上或向下箭头键选择多个单元格。在多选模式下,按Shift + M将合并您的选择
  • F将弹出“查找和替换”菜单

在编辑模式下(在命令模式下按Enter进入编辑模式),您将找到以下快捷方式:

  • 按Ctrl + Home开始单元格
  • Ctrl + S将保存您的进度
  • 如上所述,Ctrl + Enter将运行整个单元块
  • Alt + Enter不仅会运行您的单元格块,还会在下面添加一个新单元格
  • Ctrl + Shift + F打开命令面板

要查看键盘快捷键的完整列表,请在命令模式下按“H”或转到“帮助”>“键盘快捷键”。随着新的快捷方式的频繁添加,请定期检查。

 

有用的Jupyter笔记本扩展

扩展是提高Jupyter笔记本电脑效率的一种非常有效的方法。我发现安装和使用扩展程序的最佳工具之一是“Nbextensions”。它需要两个简单的步骤才能在你的机器上安装它(还有其他方法,但我发现这是最方便的):

第1步:pip安装:

pip install jupyter_contrib_nbextensions

第2步:安装关联的JavaScript和CSS文件:

jupyter contrib nbextension install --user

完成此操作后,您将在Jupyter Notebook主页顶部看到“Nbextensions”选项卡。瞧!您可以使用一系列可用于项目的精彩扩展。

要启用扩展程序,只需单击它即可将其激活。我已经提到了下面我发现最有用的4个扩展:

  • 代码美化:它重新格式化并美化代码块的内容。

  • Printview:此扩展程序添加一个工具栏按钮,用于调用   当前笔记本的jupyter nbconvert,并可选择在新的浏览器选项卡中显示转换后的文件。
  • Scratchpad:这会添加一个暂存器单元,使您无需修改​​笔记本即可运行代码。当你想要试验你的代码但又不想在你的现场笔记本上做这件事时,这是一个非常方便的扩展。
  •  Table of Contents (2)这个很棒的扩展收集了Notebook中的所有标题,并在浮动窗口中显示它们。

这些只是您可以使用的一些扩展。我强烈建议您查看整个列表并进行实验。

 

保存和共享您的笔记本

这是Jupyter笔记本最重要和最棒的功能之一。当我必须做博客文章并且我的代码和注释在Jupyter文件中时,我需要先将它们转换为另一种格式。请记住,这些笔记本采用json格式,在共享时并不是很有用。我不能在电子邮件或博客上发布不同的单元格块,对吗?

转到“文件”菜单,您会在其中看到“下载为”选项:

 

您可以将笔记本保存在所提供的7个选项中的任何一个中。最常用的是.ipynb文件,因此其他人可以在他们的机器上复制您的代码,或者打开作为网页.html文件(当您想要保存嵌入在Notebook中的图像时,这会派上用场)。

您还可以使用nbconvert选项手动将笔记本转换为HTML或PDF等其他格式。

您还可以使用jupyterhub,它允许您在其服务器上托管笔记本并与多个用户共享。许多顶尖的研究项目都将此用于协作。

 

JupyterLab - Jupyter笔记本的演变

JupyterLab于今年2月推出,被认为是Jupyter笔记本电脑的发展。它允许以更灵活和更强大的方式处理项目,但使用与Jupyter笔记本相同的组件。JupyterLab环境与Jupyter笔记本完全相同,但具有更高效的体验。

JupyterLab使您可以在一个窗口中安排笔记本,终端,文本文件和输出的工作区域!您只需将单元格拖放到所需的位置即可。您还可以使用实时预览编辑Markdown,CSV和JSON等流行文件格式,以查看实际文件中实时发生的更改。

如果要在机器上试用,可以在此处查看安装说明。开发人员的长期目标是让JupyterLab最终取代Jupyter笔记本电脑。但是现在这一点还有点远。

 

最佳实践

虽然单独在项目上工作可能很有趣,但大多数时候你会发现自己在团队中工作。在这种情况下,遵循指南和最佳实践非常重要,以确保您的代码和Jupyter笔记本正确注释,以便与您的团队成员保持一致。在这里,我列出了一些在使用Jupyter笔记本时应该遵循的最佳实践指针:

  • 任何程序员最重要的事情之一 - 始终确保为您的代码正确添加注释!
  • 确保您拥有代码所需的文档
  • 考虑一个命名方案并在整个代码中坚持使用它以确保一致性。这使其他人更容易遵循
  • 无论您的代码需要哪些库,都要在笔记本的开头导入它们(并在它们旁边添加注释,以便您加载它们的目的)
  • 确保代码中的行间距正确。你不希望你的循环和函数在同一行 - 当需要稍后引用时,这会带来令人抓狂的体验!
  • 您有时会发现您的文件变得非常繁重。查看有关如何隐藏您认为不重要的一些代码以供日后参考的选项。这对于让您的笔记本看起来更整洁更清洁非常宝贵
  • 看看这款笔记本matplotlib看怎么漂亮,整齐,可以代表

另一个奖金提示!当您考虑创建演示文稿时,首先想到的工具是PowerPoint和Google幻灯片。坚固你的Jupyter笔记本也可以制作幻灯片!还记得当我说它超级灵活吗?我并没有夸大其词。

要将Notebook转换为幻灯片,请转到“查看” - >“单元格工具栏”,然后单击“幻灯片放映”。繁荣!现在,每个代码块都会在右侧显示“幻灯片类型”下拉选项。您将获得以下5个选项:


玩弄每个选项以更好地理解它。它会改变你呈现代码的方式!

 

结束笔记

请注意,这不是您可以使用Jupyter笔记本执行的详尽清单。它还有很多东西,你使用它的次数越多越好。与许多事情一样,关键在于尝试实践。

看看这个GitHub存储库,其中包含一系列迷人的Jupyter笔记本。

本指南只是您数据科学之旅的起点,我很高兴您随身携带它!让我知道您对Jupyter笔记本的看法以及他们在下面的评论部分如何帮助您。另外,如果您有任何疑问 - 请告诉我!

原文:https://www.analyticsvidhya.com/blog/2018/05/starters-guide-jupyter-notebook/

猜你喜欢

转载自blog.csdn.net/ChenVast/article/details/81530908