0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么Jupyter Notebook会比其他工具更受欢迎?

zhKF_jqr_AI 来源:未知 作者:胡薇 2018-05-31 09:27 次阅读

对于机器学习和数据科学的入门者来说,“有什么好用的IDE/环境/工具?”是他们提出的最常见的问题之一。这确实也是个不怎么好回答的问题,因为它没有具体选项——从面向特定语言的IDE(如R Studio、PyCharm)到Sublime Text、Atom等编辑器——它们都很优秀,所以如果你有选择恐惧症,你最好读读论智的这篇文章,从Jupyter Notebook开始学起。

如果每个数据科学家都应该使用或必须使用一种工具,毫无疑问,它就是Jupyter Notebook(曾用名iPython Notebook)。Jupyter Notebook是一个交互式笔记本,它功能强大,支持40多种编程语言,可共享,并提供在同一环境中构建可视化应用的服务。

数据科学家可以在上面创建和共享自己的文档,从实现代码到全面报告,Jupyter Notebook大大简化了开发者的工作流程,帮助他们实现更高的生产力和更简单的多人协作。也正是因为如此,它一直以来都是数据科学家们最喜欢的工具之一。

本文将全面介绍笔记本的安装、操作方法,并深入探讨它的特性和优势。当你读完全文后,我们希望你能找到用Jupyter Notebook帮助自己实现机器学习项目的灵感。

1. 什么是Jupyter Notebook?

Jupyter Notebook是一个开源的Web应用程序,旨在方便开发者创建和共享代码文档。

它提供了一个环境,用户可以在里面写代码、运行代码、查看结果,并在其中可视化数据。鉴于这些优点,Jupyter Notebook成了数据科学家眼里的一款人见人爱的工具,它能帮助他们便捷地执行各种端到端任务,如数据清洗、统计建模、构建/训练机器学习模型等。

而对于初学者,Jupyter Notebook也独具魅力。它的一个特色是允许把代码写入独立的cell中,然后单独执行。这样做意味着用户可以在测试项目时单独测试特定代码块,无需从头开始执行代码。虽然其他的IDE环境(如RStudio)也提供了这种功能,但就个人使用情况来看,Jupyter Notebook的单元结构是设计的最好的。

这个笔记本的优势还体现在灵活性和交互性上。Jupyter Notebook支持的编程语言数量高达40余种,除了最基础的Python,它还允许用户在上面运行R语言和SQL等语言。由于它比IDE平台更具交互性,用户也更乐于在各种教程中用它展示代码。

2. 如何安装Jupyter Notebook?

Jupyter Notebook原来也叫iPython Notebook,顾名思义,它和Python关系紧密。如果要在PC上安装笔记本,首先你要确保自己已经安装了Python(2.7/3.3或更高),这是必备条件。

Anaconda

官方在文档中强烈建议新用户用Anaconda打包安装Python和Anaconda——所谓懒人方法,小白必备。其实除了提到的两个工具,Anaconda还包含数据科学和机器学习中经常需要用到的各种软件包,只需下载、解压、安装,所有工具就都一步到位了。

下载地址:https://jupyter.readthedocs.io/en/latest/install.html

pip

如果你很欣赏自己,或者因为某些因素就是不想用Anaconda,你也可以用pip。当然首先,你得确保自己的机器上有pip的最新版本。

#Linux和OSX

pip install -U pip setuptools

#Windows

python -m pip install -U pip setuptools

然后,安装Jupyter Notebook:

#Python2用户看这里

pip install jupyter

#Python3用户不要跑

pip3 install jupyter

如果还是有疑问,请看官方文档(英)、官方文档翻译(中)。

3. 入门

安装完成后,如果要运行Jupyter Notebook,你只需在控制台输入以下命令:

jupyter notebook

你会看到笔记本打开了你的默认浏览器,网址为http:// localhost:8888/tree。

一般情况下,当你输入命令行后,控制台会出现一行“The Jupyter Notebook is running at……”,如果浏览器因为某些原因无法打开,你就需要复制这个URL,手动打开相应网址。

当笔记本打开后,它的顶部有Files、Running和Clusters三个选项。其中Files中列出了所有文件,Running显示了你已经打开的终端和笔记本,Clusters则是IPython parallel提供的。

如果你想新建一个笔记本,单击面板右侧的“New”,它会跳出4个选项:

Python 3

Text File

Folder

Terminal

选择Text File后,你会得到一个空白的页面。它相当于一个文本编辑器(类似于Ubuntu上的应用程序),你可以在上面输入任何字母、单词和数字,所以选择好编程语言后,你是可以在上面写脚本的。此外,它还提供查找和替换文件中的单词的功能。

选择Folder后,你其实是在编辑文件夹列表。你可以创建一个新文件夹,把所需文档放进里面,或者修改它的名称、直接把它删除。

而Terminal的工作方式和Mac、Linux计算机上的Terminal一样,都是在Web浏览器中创建终端支持。只需在终端输入Python,一个Python脚本就写好了。

由于本文重点介绍的是笔记本,下面我们会重点展示新建“Python 3”后的结果:

导入最常见的Python库来启动笔记本,如pandas和numpy。在代码上方的菜单中,那些图标依次表示添加、编辑、剪切、向上移动cell、向下移动cell、运行代码、停止运行和撤销。

这个下拉的列表提供了四个选项:

Code:这个不言自明,就是你写代码的地方;

Markdown:非常常见的轻量级标记语言,用来为代码添加注释和结论;

Raw NBConvert:一个命令行工具,可以把你的笔记本转换成另一种格式,如HTML;

Heading:添加标题,使你的文档看起来更干净整洁,它现在已经变成Markdown里的一个语法,用两个#表示。

4. Jupyter Notebook的魔术命令

作为iPython的继承者,开发人员已经在Jupyter Notebook中加入预定义的魔术命令(magic function)。这是一种增加便捷性和互动性的工具,如果要查看命令列表,你可以输入(注:通常不需要“%”):

%lsmagic

当看到那一串函数列表时,也许你能从中认出几张老面孔,如%clear、%autosave、%debug和%mkdir。只要你以前写过代码,这些函数就几乎是不可避免的。

在Jupyter Notebook中,魔术命令有两种运行方式,一是Line-wise,而是Cell-wise。顾名思义,Line-wise就是当你想执行一个命令行的时候需要用到的,而Cell-wise面向的就不单单是一行了,它作用的是整个cell的代码块。

为了区分两种运行方式,如果是Line-wise,所有命令必须以%字符打头;如果是Cell-wise,则用%%。

Line-wise:

%time a = range(10)

Cell-wise:

%%timeit a = range (10)

min(a)

以上只是两个最简单的示例,你可以试着自己运行这些命令,看看其中有什么区别。

5. 不仅限于Python

之前也提到了,Jupyter Notebook的成功离不开它的灵活性,虽然Python在数据科学和机器学习中都占局主导地位,但对于数据分析任务,其他语言也有各种各样的特色和优势,比如R语言的'ggplot2'软件包就非常好用。在这一点上,Jupyter Notebook的态度是开放的。

如果想在Jupyter Notebook中启用R,你需要先去GitHub上下载'IRKernel'(R的专用kernel),然后按以下8个步骤依次执行(附图解地址):

步骤一:用Anaconda安装Jupyter Notebook;

步骤二:完成下载后,打开Anaconda命令提示符;

步骤三:输入ipython notebook新建ipython笔记本

步骤四:用conda update ipython-notebook这个命令行更新笔记本;

步骤五:输入conda install -c r ipython-notebook r-irkernel安装IRkernel;

步骤六:用R.exe打开R;

步骤七:输入install.packages(c('rzmq','repr','IRkernel','IRdisplay'), repos = 'http://irkernel.github.io/', type = 'source')安装必要软件包;

步骤八:输入IRkernel::installspec()后再输入quit(),完成操作。

如果是Julia用户,你也可以在Jupyter Notebook中“畅所欲言”。考虑到篇幅因素,有需要的读者请前往www.analyticsvidhya.com/blog/2017/10/comprehensive-tutorial-learn-data-science-julia-from-scratch/查看图文攻略。

和R语言一样,JavaScript用户也需要去Github先下载‘IJavascript’ kernel:github.com/n-riesco/ijavascript。文档里已经明确写出了安装kernel所需的步骤,但要注意的是,记得先装Node.js和npm,这是大前提!

6. Jupyter Notebook的交互式控制面板

在添加小部件前,你需要先导入小部件包:

from ipywidgets import widgets

小部件的基本类型是典型的基于输入和按钮的文本输入。你可以参考下面这幅动图,了解交互式小部件的外观:

来源:Dominodatalab

7. 快捷键

既然Jupyter Notebook的主打优势是便捷,那它自然少不了方便操作的快捷键。事实上,当你想运行任意代码块时,只需按下Ctrl + Enter就可以了。

下面是本文挑选的一些实用快捷键,有需要的读者可以视情况逐个阅读+尝试,如果今后你会经常用到Jupyter Notebook,那不会这些组合键的你就几乎已经是条咸鱼了。

Jupyter Notebook提供了两种不同的键盘输入模式——Command和Edit。其中Command模式是将键盘和计算机命令绑定在一起,这时单元框线是灰色的(左侧蓝色粗线)。Edit模式允许你将文本(或代码)键入活动单元,这时单元框线是绿色的。

用Esc和Enter分别在Command和Edit模式之间跳转。

更多快捷键介绍(中文):blog.csdn.net/lawme/article/details/51034543

8. 有用的扩展

添加扩展是提高Jupyter Notebook效率的一种非常有效的方式,那么安装和使用扩展哪家强?这里我们推荐Nbextensions。

先是安装(pip):

pip install jupyter_contrib_nbextensions

安装关联的JavaScript和CSS文件:

jupyter contrib nbextension install --user

完成此操作后,你会在Jupyter Notebook主页顶部看到一个'Nbextensions'选项卡。

如果要启用一个扩展,只需点击来激活。下面是4个比较有用的扩展。

Code prettify:它可以让你的代码更美观。

Printview:生成预览,新增的按钮叫jupyter nbconvert。

Scratchpad:生成一个实验环境(副本)跑代码,不会对笔记本代码造成影响。

Table of Contents (2):抓取所有标题,并显示在浮动窗口中。

此外,小编也曾经写过一篇《Top 5:五大最实用的Jupyter Notebook扩展插件》,介绍了另外5种好用的扩展,有兴趣的读者可以一起看一看。

9. 保存和共享你的笔记本

这是Jupyter Notebook中最重要和最棒的功能之一。有过写博客经历的读者也许知道这种痛,当你一腔热血想把自己的成果分享给别人时,可能代码格式还没转完你就放弃了。大多数笔记本都采用json格式,它不是很适合共享,也不利于在博客中发布不同的单元块。

但Jupyter Notebook不一样,点击进入“file”后,你会看到一个“Download as”:

看到这7个选项后你就很开心了,其中最常用的是.ipynb文件。你也可以用nbconvert选项手动将笔记本转换为不同的格式,如HTML和PDF。

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

10. JupyterLab

JupyterLab是今年2月推出的一个工具,从某种程度上来说,它是Jupyter Notebook的一个发展——拥有同样的组件,但允许更灵活和更强大的项目工作方式。换句话说,它的用户体验更好。

JupyterLab的特色是允许用户在一个窗口内安排笔记本、终端、文本文件和输出的工作区。你可以把窗口拖到你想要的位置,也可以通过实时预览编辑常用文件格式,如Markdown、CSV和JSON,实时查看项目进展。

11. 实践和技巧

虽然自己钻研很有趣,但无论是学习还是工作,大部分时候你是在一个团队中工作的。在这种情况下,你要规范自己的操作和实践,确保笔记本中的代码和注释都是正确的,方便其他人阅读、理解。以下是一些实践指标,仅供参考:

对每个程序员来说最重要的事:要好好注释!

确保你保存了代码文档。

形成一套命名体系,并在实践中落到实处,方便自己和他人理解。

在刚开始的时候导入所需的库,并在旁边注释导入目的。

确保代码行距合适,你也不想别人因为看不懂你的循环和函数疯掉,对吧?

当代码越来越多时,隐藏不重要代码,确保干净整洁。

此外,当你需要把成果演示给别人看时(是的你又要做该死的PPT了),你是可以偷懒直接在Jupyter Notebook里做演示的。

找到“View”,点开其中的“Cell Toolbar”,然后是“Slideshow”。每个代码块都在右侧显示一个名为“Slide Type”的下拉选项:

具体效果如何,请自己尝试。

结语

写到这里,本文也就已经差不多结束了,虽然在一篇文章内塞进这么多内容可能会影响阅读体验,但我们还是真诚地希望新手能从中找到一些有用的东西。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8418

    浏览量

    132635
  • 数据科学
    +关注

    关注

    0

    文章

    165

    浏览量

    10059

原文标题:数据科学和机器学习,Jupyter Notebook入门指南

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    卷积神经网络的实现工具与框架

    卷积神经网络因其在图像和视频处理任务中的卓越性能而广受欢迎。随着深度学习技术的快速发展,多种实现工具和框架应运而生,为研究人员和开发者提供了强大的支持。 TensorFlow 概述
    的头像 发表于 11-15 15:20 269次阅读

    干货!基于RK3568的 AI 人工智能环境搭建步骤

    ://pypi.tuna.tsinghua.edu.cn/simple jupyterlab 12、获取生成码 jupyter notebook --generate-config ipython from
    发表于 11-12 09:43

    为什么低功耗蓝牙如此受欢迎

    随着对附加传感器、智能显示器以及与外界联系能力的需求不断加强,设备和机器朝着智能的方向发展。伴随这些功能而来的是复杂度增加。由于设备出现故障时,需要打开设备或连接到端口进行问题诊断,这会造成防水
    的头像 发表于 10-30 14:26 235次阅读

    Llama 3 模型与其他AI工具对比

    Llama 3模型与其他AI工具的对比可以从多个维度进行,包括但不限于技术架构、性能表现、应用场景、定制化能力、开源与成本等方面。以下是对Llama 3模型与其他一些主流AI工具的对比
    的头像 发表于 10-27 14:37 389次阅读

    戴尔科技PowerFlex为什么受欢迎

    现如今,Dell PowerFlex是市场上的“香饽饽”,曾创下连续八个季度销量增长的辉煌战绩。PowerFlex为何在广大企业用户心中,具有难以替代的重要作用呢?戴尔科技集团首席系统工程师Matt Hobbs最近的一篇博客文章,说出了答案。
    的头像 发表于 10-16 10:10 382次阅读

    Apple Watch系列中,高端Ultra型号或受欢迎

    8月16日外媒传来消息,据一份上月中旬发布的行业报告揭示,苹果公司在今年第二季度iPhone销售中,高端旗舰iPhone 15 Pro Max以22%的占比独占鳌头,成为最畅销机型。紧随其后的是iPhone 15,占据19%的市场份额,而iPhone 15 Pro则以15%的份额位列第三。相比之下,iPhone 15 Plus表现较为平淡,仅占2%,而入门级的iPhone SE也仅收获了5%的份额,这一比例不仅低于去年iPhone 14的15%,也逊色于2021年iPhone 13的10%表现。
    的头像 发表于 08-16 15:59 785次阅读

    FC-135是一款受欢迎的32.768kHz晶振

    了,爱普生晶振FC-135是一款受欢迎的32.768KHz晶振,小体积尺寸3.2x1.5mm无源晶振,石英晶体谐振器,超小型,轻薄型,非常适用于钟表电子,智能手平板电脑,
    的头像 发表于 06-07 11:48 457次阅读
    FC-135是一款<b class='flag-5'>受欢迎</b>的32.768kHz晶振

    发展智能制造,会比想象中困难吗?

    智能制造
    脑极体
    发布于 :2024年05月29日 15:26:35

    环保又高效:365nm固化灯为何如此受欢迎?

    365nm固化灯会如此受欢迎呢?接下来,就让我们一起探寻其中的奥秘。 一、高效固化,提升生产效率 365nm固化灯采用先进的发光技术和高效的能量转换机制,能够在短时间内提供高强度的紫外线辐射,从而实现对材料的快速固化。这种高效的固化方式
    的头像 发表于 05-15 11:19 342次阅读
    环保又高效:365nm固化灯为何如此<b class='flag-5'>受欢迎</b>?

    AMR智能仓储机器人为什么会越来越受欢迎?

    AMR智能仓储机器人之所以越来越受欢迎,主要是因为它们具有以下几个优势: 1.提高工作效率: AMR智能仓储机器人可以在仓库环境中自主导航和执行任务,无需人工干预。它们可以快速而准确地搬运货物、进行
    的头像 发表于 03-25 16:56 536次阅读

    AI女友比AI男友受欢迎?前者是后者的700%+

    生成式 AI 催生了各种新的应用类别,但其中最大的影响之一是重新激活了 AI 约会和陪伴……
    的头像 发表于 03-18 09:07 424次阅读

    人工智能市场风向转变,AMD Instinct MI300X GPU受欢迎

    近一半的受访者表示对AMD的Instinct MI300X GPU持乐观态度。与英伟达的H100系列相比,MI300X不仅价格与性能比值更为优越,而且供应稳定,避免了货源紧张的问题。
    的头像 发表于 03-11 15:28 980次阅读

    有没有比Xshell牛逼的工具

    大家都知道,如今市面上流行的远程连接工具众多。我本人也一直在用着诸如CRT、Xshell等工具
    的头像 发表于 01-25 10:44 624次阅读
    有没有比Xshell<b class='flag-5'>更</b>牛逼的<b class='flag-5'>工具</b>?

    低功耗蓝牙模块备受欢迎的原因有哪些?

    近些年来,低功耗蓝牙模块在物联网领域应用非常广泛,主要体现在智能家居、电子工业、智慧医疗、智能农场等,为什么低功耗蓝牙模块如此受欢迎呢?其主要原因在于低功耗蓝牙模块具备以下7个特点。 一、跳频
    的头像 发表于 01-23 09:45 430次阅读
    低功耗蓝牙模块备<b class='flag-5'>受欢迎</b>的原因有哪些?

    SOLIDWORKS 2024:带领CAD新功能与3D建模工具的革新

    随着科技的不断发展,CAD(计算机辅助设计)软件在各个工程领域中发挥着越来越重要的作用。作为一款广受欢迎的CAD软件,SOLIDWORKS不断推陈出新,为用户提供更加有效的设计解决方案。本文将介绍SOLIDWORKS 2024的新功能和3D建模工具,探讨其在CAD领域的突
    的头像 发表于 01-15 10:47 1073次阅读
    SOLIDWORKS 2024:带领CAD新功能与3D建模<b class='flag-5'>工具</b>的革新