jupyter notebook 是一个 web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 kaggle 里的资料都是 jupyter 格式。对于机器学习新手来说,学会使用 jupyter notebook 非常重要。
什么是 jupyter notebook?jupyter notebook 是一款开放源代码的 web 应用程序,可让我们创建并共享代码和文档。
它提供了一个环境,你可以在其中记录代码,运行代码,查看结果,可视化数据并在查看输出结果。这些特性使其成为一款执行端到端数据科学工作流程的便捷工具 ,可以用于数据清理,统计建模,构建和训练机器学习模型,可视化数据以及许多其他用途。
当你还在构建项目原型时,jupyter notebooks 真的特别好用,因为你的代码是被写入独立的单元中并被单独执行的。这允许用户测试项目中的特定代码块,而无需从脚本的开始执行代码。许多其他的 ide 环境(integrated development environment, 集成开发环境)(如 rstudio )也以其他几种方式做到这一点,但我发现 jupyter 的单个单元结构是最好的。
正如你在本文中将会看到的,这些 notebooks 是数据科学家手中非常灵活、可交互和强大的工具。他们甚至允许你运行除 python 以外的其他语言,比如 r 、sql 等。由于它们比 ide 平台更具交互性,因此它们被广泛地应用于教学场景。
如何安装 jupyter notebook?首先你需要在机器上安装 python,python 2.7或python 3.3(或更高版本)都可以。
anaconda新用户可以使用 anaconda 发行版来同时安装 python 和 jupyter notebooks。
anaconda 安装了这两种工具,并包含了数据科学和机器学习社区中常用的很多软件包。你可以从这里下载最新版本的anaconda 。
下载地址:https://jupyter.readthedocs.io/en/latest/install.html
pip 安装方法如果出于某种原因,你决定不使用 anaconda,那么你需要确保你的机器正在运行最新版本的 pip。怎么做?如果你已经安装了 python,那么 pip 已经安装好了。要升级到最新的版本,请参照下面的代码:
#linux and osxpip install -u pip setuptools#windowspython -m pip install -u pip setuptools一旦 pip 安装完毕,你可以继续安装 jupyter:
#for python2pip install jupyter#for python3pip3 install jupyter你可以在这里(地址:https://jupyter.readthedocs.io/en/latest/install.html)查看官方的 jupyter 安装文档。
开始现在我们已经了解了 notebooks 是什么,以及如何在自己的机器上安装和设置 notebooks。是时候开始动动手了!
要运行 jupyter notebooks,只需输入以下命令就可开始使用!
jupyter notebook执行上面命令之后, jupyter notebook 将在你的默认浏览器中打开,网址为:http://localhost:8888/tree
在某些情况下,它可能无法自动打开。这种情况下,你的终端或者命令提示符中将会生成一个带有令牌密钥( token key )的网址。要打开 notebook,你需要将整个 url(包括令牌密钥)复制粘贴到浏览器中。
notebook 打开后,你会在顶部看到三个选项卡:files(文件),running(运行)和 clusters(集群)。files 基本上列出了所有的文件,running 显示你当前已经打开的终端和notebooks,clusters 由 ipython parallel 包提供,用于并行计算。
要打开一个新的 jupyter notebook,请单击页面右侧的“new”选项卡。在这里,你有四个选项可供选择:
python 3text file (文本文件)folder (文件夹)terminal (终端)在 text file 选项中,你会得到一个空白的文档。输入你喜欢的任何字母,单词和数字。它基本上是一个文本编辑器(类似于 ubuntu 上的应用程序)。你也可以选择一种语言(支持非常多的语言),然后用该语言来写一个脚本。你还可以查找和替换文件中的单词。
在 folder 选项中, 顾名思义它的功能就是创建文件夹。你可以创建一个新文件夹来放入文件,重新命名或者删除它。
terminal 的工作方式与你的 mac 电脑或 linux 电脑上的终端完全相同(或者 windows 上的 cmd )。它在你的web浏览器中支持终端会话。在这个终端中输入 python ,瞧!现在你已经可以开始写 python 脚本了。
但在本文中,我们将重点介绍 notebooks,因此我们将从“new”选项中选择 python 3 选项。你会看到如下的截图:
然后,你可以导入最常见的 python 库——pandas 和 numpy——来开始你的项目。代码上方的菜单栏提供了操作单元格的各种选项:insert (添加),edit (编辑),cut (剪切),move cell up/down (上下移动单元格),run cells(在单元格中运行代码),interupt (停止代码),save (保存工作),以及 restart (重新启动内核)。
在下拉菜单中(如上所示),你有四个选项:
code - 这是你输入代码的地方markdown - 这是你输入文本的地方。你可以在运行代码后添加结论,添加注释等。raw nbconvert - 这是一个命令行工具,可将你的笔记本转换为另一种格式(如 html)heading - 你可以将标题添加到单独的小节并使你的 notebook 看起来干净整洁。这个选项现在已经集成到 markdown 选项中。添加一个“##”,以确保在你之后输入的内容将被视为标题使用 magic functions开发人员已经插入了预定义的 magic functions,使你的工作更方便和更具交互性。你可以运行以下命令来查看这些函数的列表(注意:通常不需要输入“%”,因为通常 automagic 是默认打开的):
%lsmagic你会看到许多选项,你甚至可能认识其中的 %clear, %autosave, %debug 和 %mkdir 等函数。magic command 有两种运行方式:
逐行运行( line-wise )逐块运行( cell-wise )顾名思义, line-wise 是当你想要执行一个单行命令的时候使用,而 cell-wise 是你想要执行的命令不仅仅是一行,而是整个单元格中的整个代码块时使用。
在逐行运行模式中,所有给定的命令都必须以 % 字符开始,而在逐块运行模式下,所有命令都必须以 %% 开头。让我们看看下面的例子来更好的理解:
逐行模式:
%time a = range(10)逐块模式:
%%timeit a = range (10)min(a)我建议你运行这些命令,看看其中的区别!
不仅限于 python - 在 notebooks 中使用 r,julia 和javascriptnotebooks 的魔术并不止于此。你甚至可以在 notebooks 中使用其他语言,如 r,julia,javascrip t等。我个人喜欢 r 中的 ggplot2 软件包,因此使用 notebooks 来进行探索性数据分析非常方便。
要在 jupyter 中启用 r,你需要 github上提供的 irkernel( r 的专用内核)。这里有一份详细的指南(地址:https://discuss.analyticsvidhya.com/t/how-to-run-r-on-jupyter-ipython-notebooks/5512),总共需要八个步骤,还有截图来引导你一步一步进行操作。
如果你是 julia 用户,你也可以在 jupyter notebooks 中使用它!查看这篇详尽的文章(地址:地址:https://discuss.analyticsvidhya.com/t/how-to-run-r-on-jupyter-ipython-notebooks/5512),它重点介绍了 julia 用户如何学习数据科学,并包括了一章节介绍如何在 jupyter 环境中使用 julia。
如果你更喜欢使用 javascript,我推荐使用 ijavascript 内核。查看这个 github 库(地址:https://github.com/n-riesco/ijavascript),它会引导你在不同操作系统上安装此内核。请注意,你需要先安装 node.js 和 npm 才能使用它。
jupyter notebooks 中的交互式命令板在开始添加小插件(widget)之前,你需要导入 widgets 包:
from ipywidgets import widgets小插件的基本类型是典型的文本输入框和按钮。请参阅以下来自dominodatalab 的示例,了解一下交互式小插件是怎么使用的:
你可以在这里(地址:https://blog.dominodatalab.com/interactive-dashboards-in-jupyter/)查看详尽的开发指南。
键盘快捷键——节省时间并提高效率!快捷键是 jupyter notebooks 最好用的功能之一。当你想运行任何代码块时,你只需要按下ctrl + enter 即可。jupyter notebooks 提供的键盘快捷键非常多,为我们节省了大量时间。
以下是我们挑选的一些快捷键,你在开始使用 notebooks 时会经常用到这些快捷键。我强烈建议你阅读这些内容的时候一个一个地尝试一下这些快捷键。
jupyter notebook 提供了两种不同的键盘输入模式 - 命令和编辑。命令模式将键盘与 notebook 命令绑定,并由具有蓝色左边距的带有灰色单元格边框来表示。编辑模式允许你将文本(或代码)输入活动单元格,并以绿色单元格边框表示。
使用 esc 和 enter 在命令和编辑模式之间跳转。现在就试试吧!一旦进入命令模式(即没有活动单元格),就可以尝试以下快捷键:
a 键将在选中单元格上方插入新单元格,b 键将在选中单元格下方插入一个单元格要删除单元格,请连续按两次 d 键要撤消已删除的单元格,请按 z 键y 键将当前的选中单元格变成代码单元格按住 shift + 向上或向下箭头键可以选择多个单元格。在多选模式下,按 shift + m 会合并选中的单元格f 键会弹出 “查找和替换” 菜单处于编辑模式时(在命令模式下按 enter 键进入编辑模式),你会发现以下快捷键非常好用:
ctrl + home 转到单元格的开头ctrl + s 会保存你的工作和上面提过的一样,ctrl + enter 将运行你的整个单元格alt + enter 不仅会运行你的单元格,它还会在下方添加一个新的单元格ctrl + shift + f 打开命令选项板要查看整个键盘快捷键列表,请在命令模式下按 h 或转到 help 菜单栏下的 keyboard shortcuts。请经常检查这些内容,因为经常会有新的快捷键被加进来。
有用的 jupyter notebooks 扩展扩展可以有效提高你的 jupyter notebooks 的生产力。安装和使用扩展的最佳工具之一是 nbextensions。它需要两个简单的步骤来安装(也有其他方法,但我发现这是最方便的):
第1步:用 pip 来安装它:
pip install jupyter_contrib_nbextensions第2步:安装关联的 javascript 和 css 文件:
jupyter contrib nbextension install --user完成此操作后,你会在 jupyter notebook 主页顶部看到一个 nbextensions 选项卡。这里面有很多非常棒的扩展供你使用。
要启用一个扩展,只需点击它来激活。我在下面提到了4个我认为最有用的扩展:
code prettify:重新格式化和美化代码块的内容。
printview:这个扩展添加了一个工具栏按钮来调用当前 notebook 的 jupyter nbconvert,并可选择在新的浏览器标签中显示转换后的文件。scratchpad:这个扩展增加一个便捷单元格,它可以让你运行你的代码而不必修改你的 notebook。这是一个非常方便的扩展,特别是当你想要测试你的代码,但不想在你的活动notebook上做这件事。table of contents (2):这个扩展可以收集你的 notebook 中的所有标题,并将它们显示在一个浮动窗口中。这些只是你可以使用的其中一些扩展。我强烈建议查看整个扩展列表并对它们进行测试。
保存和共享你的 notebook这是 jupyter notebook 中最重要和最棒的功能之一。当我需要写博客文章,但我的代码和注释都保存在 jupyter 文件中时,我需要先将它们转换为另一种格式。请记住,这些 notebooks 采用 json 格式,在共享它时这并不是很有帮助。我无法在电子邮件或博客上发布不同的单元格或代码块,对吧?
进入 files 菜单,你会看到一个 download as 选项:
你可以将你的 notebook 保存为 7 个选项中的任何一个。最常用的是 .ipynb 文件,这样其他人就可以在自己的机器上复制代码;或者保存为 .html 文件, 这样会打开一个网页(当你想要保存嵌入在 notebook 中的图像时,这会派上用场)。
你也可以使用 nbconvert 选项手动将你的 notebook 转换为不同的格式,如 html 或 pdf。
你还可以使用 jupyterhub,它允许你在其服务器上托管 notebooks 并与多个用户共享。许多顶尖的研究项目都使用这个功能用于协作。
jupyterlabjupyterlab 于今年 2 月推出,它允许以更灵活和更强大的方式处理项目,但使用的是和 jupyter notebooks 相同的组件。jupyterlab 环境与 jupyter notebooks 完全相同,但用户会有更高效的体验。
在 jupyterlab 中,你只需一个窗口即可安排 notebook 的工作区域、终端、文本文件和输出!你要做的仅仅是将单元格拖放到你想要的位置。你还可以通过实时预览功能来编辑常用文件格式,如 markdown、csv 和 json,以便在实际文件中实时查看所发生的变化。
如果你想在你的机器上试用它,你可以在这里查看安装说明(地址:http://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html)。开发人员的目标是 jupyterlab 最终可以取代 jupyter notebooks。但是,要做到这一点还要花点时间。
最佳实践虽然单独工作可能很有趣, 但大多数时候你会发现自己是在一个团队中工作。在这种情况下,遵循指导方针和最佳实践非常重要,这样可以确保你的代码和 jupyter notebooks 被正确标注,以便与你的团队成员保持一致。下面我列出了一些最佳实践指南,你在 jupyter notebooks 上工作时一定要遵循以下指南:
对于任何程序员来说最重要的事情之一:始终确保为代码添加合适的注释!确保你有代码所需的文档。考虑一个命名方案,并坚持在所有代码中使用以确保一致性。这样其他人更容易读懂你的代码。无论你需要什么库,在 notebooks 开始时导入它们(并在它们旁边添加注释,说明导入它们的目的)。确保代码中行与行之间有适当间隔,不要把循环和函数放在同一行中。有时候你会发现你的文件变得非常繁重。看看有没有方法隐藏你认为对于以后参考不太重要的代码。notebooks 看起来整洁干净, 让人赏心悦目也非常重要。matplotlib 可以很漂亮整洁地展示你的 notebook,看看怎么使用它!地址:http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/lecture-4-matplotlib.ipynb另一个提示!当你想创建演示文稿时,首先想到的工具是 powerpoint 和 google slides。其实你的 jupyter notebooks 也可以创建幻灯片!还记得我说它超级灵活吗?我一点都没有夸大。
要将你的 notebooks 转换为幻灯片,请转到 view -> cell toolbar,然后单击 slideshow。看!现在,每个代码块都在右侧显示一个 slide type 的下拉选项。它提供了以下 5 个选项:
好好试一试每一个选项以更好地理解它,它会改变你呈现你的代码的方式!
结语请注意,这篇文章并没有详尽列出 jupyter notebooks 提供的所有功能。还有更多的功能等着你在使用中挖掘。和其他很多事情一样,关键在于实践。
为什么LED芯片失效和封装失效
同洲电子选用恩智浦硅调谐器解决方案TDA18252
美光推出专为数据密集型应用打造的全新SAS固态硬盘系列产品
关于自动驾驶安全性的分析和加强的方法
一种数字可调的升压型开关电源的设计与实现
什么是 Jupyter Notebook
造完汽车造飞机,VR/AR技术这里牛掰?
稀释剂调节局部高浓电解液助力高电压锂金属电池
浅谈绿色照明与智能照明节能控制系统
蓝牙5.4引入PAwR,电子价签迎来新机遇
【新闻中心】法国Solu-Watt公司客户来安科瑞考察洽谈业务
实例:如何建立一个线性分类器并进行优化
vivoNEX的续航和游戏性能到底有多强
iPhone7红色特别版开箱图赏:iPhone一直都很美 这次很“骚”
数字黄金为什么能在众多的数字货币中脱颖而出
为何要支持国产PLC厂子?
6月手机线下销量排行TOP10,MIUI 10开启第二批内测
电磁式操纵负荷系统设计
松翰网路视讯晶片支援Intel Haswell平台
威马汽车回应破产风波 创始人跑路海外?威马汽车否认