| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Jupyter Notebook从入门到精通 -> 正文阅读 |
|
[开发工具]Jupyter Notebook从入门到精通 |
下载
1. 什么是 Jupyter 笔记本?Jupyter Notebook 是一个非常强大的工具,用于交互式开发和展示数据科学项目。本文将带您了解如何将 Jupyter Notebooks 用于数据科学项目,以及如何在您的本地机器上进行设置。 首先,什么是“笔记本”? 笔记本将代码及其输出集成到单个文档中,该文档结合了可视化、叙述性文本、数学方程式和其他富媒体。换句话说:它是一个单一的文档,您可以在其中运行代码、显示输出,还可以添加解释、公式、图表,并使您的工作更加透明、可理解、可重复和可共享。 使用 Notebooks 现在是全球公司数据科学工作流程的主要部分。如果您的目标是处理数据,使用 Notebook 将加快您的工作流程,并使交流和共享结果更容易。 最重要的是,作为开源 项目 Jupyter 的一部分,Jupyter Notebooks 是完全免费的。您可以下载该软件 自身,或作为的一部分Python数据科学工具包。 尽管可以在 Jupyter Notebooks 中使用多种不同的编程语言,但本文将重点介绍 Python,因为它是最常见的用例。(在 R 用户中,R Studio 往往是更受欢迎的选择)。 2. 如何遵循本教程要从本教程中获得最大收益,您应该熟悉编程——特别是 Python 和Pandas。也就是说,如果您有使用其他语言的经验,本文中的 Python 应该不会太神秘,它仍然会帮助您在本地设置 Jupyter Notebooks。 Jupyter Notebooks 还可以作为一个灵活的平台来处理 Pandas 甚至 Python,这将在本教程中变得明显。 我们会:
(实际上,这篇文章是作为 Jupyter Notebook 编写的!它以只读形式在此处发布,但这是 Notebook 的多功能性的一个很好的例子。事实上,我们的大部分编程教程甚至我们的Python 课程都是创建的使用 Jupyter 笔记本)。 3. Jupyter Notebook 中的数据分析示例首先,我们将通过设置和示例分析来回答现实生活中的问题。这将展示笔记本的流程如何使我们在工作时以及其他人在分享我们的工作时更直观地完成数据科学任务。 因此,假设您是一名数据分析师,您的任务是找出美国最大公司的利润在历史上是如何变化的。您可以找到自该榜单于 1955 年首次发布以来跨越 50 多年的财富 500 强公司数据集,这些数据集来自 财富的公共档案。我们已经创建了您可以在此处使用的数据的 CSV 文件 。 正如我们将要展示的,Jupyter Notebooks 非常适合这项调查。首先,让我们继续安装 Jupyter。 4. 安装初学者开始使用 Jupyter Notebooks 的最简单方法是安装 Anaconda。 Anaconda 是数据科学领域使用最广泛的 Python 发行版,并预装了所有最流行的库和工具。 Anaconda 中包含的一些最大的 Python 库包括NumPy、 pandas和 Matplotlib,尽管 完整的 1000+ 列表是详尽无遗的。 因此,Anaconda 让我们可以通过一个储备充足的数据科学研讨会开始运行,而无需管理无数安装或担心依赖项和特定于操作系统(阅读:特定于 Windows)的安装问题。 要获得 Anaconda,只需: 下载适用于 Python 3.8 的最新版本的 Anaconda。
5. 创建您的第一个笔记本在本节中,我们将学习运行和保存 notebook,熟悉它们的结构,并了解其界面。我们将熟悉一些核心术语,这些术语将引导您实际了解如何自己使用 Jupyter Notebooks,并为下一节做好准备,该部分将介绍数据分析示例,并将我们在这里学到的一切变为现实。 5.1 运行 Jupyter在 Windows 上,您可以通过 Anaconda 添加到开始菜单的快捷方式运行 Jupyter,这将在您的默认 Web 浏览器中打开一个新选项卡,该选项卡应类似于以下屏幕截图。 请注意,仪表板只会让您访问 Jupyter 启动目录(即安装 Jupyter 或 Anaconda 的位置)中包含的文件和子文件夹。但是,可以更改启动目录。 也可以通过输入命令,通过命令提示符(或 Unix 系统上的终端)在任何系统上启动仪表板 在浏览器中打开 Jupyter Notebook 后,您可能已经注意到仪表板的 URL 类似于 Jupyter 的 Notebooks 和仪表板是 Web 应用程序,Jupyter 启动本地 Python 服务器以将这些应用程序提供给您的 Web 浏览器,使其基本上独立于平台,并为更轻松地在 Web 上共享打开了大门。 (如果你还不明白这一点,别担心——重要的一点是,虽然 Jupyter Notebooks 在你的浏览器中打开,但它被托管并在你的本地机器上运行。你的笔记本实际上并不在网络上,直到你决定分享它们。) 仪表板的界面大部分都是不言自明的——尽管我们稍后会简单地回到它。那我们还在等什么呢?浏览到您要在其中创建第一个 notebook 的文件夹,单击右上角的“新建”下拉按钮并选择“Python 3”: 如果您切换回仪表板,您将看到新文件,Untitled.ipynb 并且您应该看到一些绿色文本,告诉您笔记本正在运行。 5.2 什么是 ipynb 文件?简短的回答:每个 更长的答案:每个 你可以自己编辑这个——如果你知道自己在做什么!— 通过从笔记本的菜单栏中选择“编辑 > 编辑笔记本元数据”。您还可以通过从仪表板上的控件中选择“编辑”来查看笔记本文件的内容 但是,这里的关键词是can。在大多数情况下,您没有理由需要手动编辑笔记本元数据。 6. 笔记本界面现在您面前有一个打开的笔记本,它的界面希望看起来不会完全陌生。毕竟,Jupyter 本质上只是一个高级文字处理器。 为什么不环顾四周?查看菜单以了解它,特别是花一些时间向下滚动命令面板中的命令列表,这是带有键盘图标(或Ctrl + Shift + P)的小按钮。
6.1 Cell细胞稍后我们将回到内核,但首先让我们来处理单元格。细胞构成了笔记本的主体。在上一节中新笔记本的屏幕截图中,带有绿色轮廓的框是一个空单元格。我们将介绍两种主要的细胞类型:
新笔记本中的第一个单元格始终是代码单元格。 让我们用一个经典的 hello world 示例来测试一下: 结果应如下所示:
当我们运行单元格时,它的输出显示在下方,其左侧的标签将从 代码单元的输出也构成文档的一部分,这就是您可以在本文中看到它的原因。您始终可以区分代码和 Markdown 单元格之间的区别,因为代码单元格左侧有该标签,而 Markdown 单元格没有。 标签的“以”部分只是短期的“输入”,而在标签的数字表示当将电池上的内核执行-在这种情况下,电池首先执行。 再次运行该单元格,标签将更改为 ,In [2] 因为现在该单元格是在内核上运行的第二个。稍后当我们仔细研究内核时,将更清楚为什么这如此有用。 从菜单栏中,单击“ 插入” 并选择“ 在下方插入单元格” 以在您的第一个下方创建一个新的代码单元格并尝试以下代码以查看会发生什么。你注意到有什么不同吗?
该单元不产生任何输出,但执行需要三秒钟。请注意 Jupyter 如何通过将其标签更改为 来表示单元格当前何时运行In [*]。 通常,单元格的输出来自单元格执行期间专门打印的任何文本数据,以及单元格中最后一行的值,无论是单独的变量、函数调用还是其他内容。例如:
您会发现自己在自己的项目中几乎不断地使用它,我们稍后会看到更多。 7. 键盘快捷键运行单元格时您可能会观察到的最后一件事是,它们的边框变成蓝色,而在您编辑时它是绿色的。在 Jupyter Notebook 中,总会有一个“活动”单元格突出显示,边框的颜色表示其当前模式:
那么当单元处于命令模式时我们可以对它做什么呢?到目前为止,我们已经看到了如何使用 运行单元格 键盘快捷键是 Jupyter 环境中非常流行的一个方面,因为它们促进了基于单元格的快速工作流程。其中许多是您可以在活动单元格处于命令模式时对其执行的操作。 下面是一些 Jupyter 键盘快捷键的列表。您不需要立即记住所有内容,但此列表应该可以让您对可能的内容有一个很好的了解。
继续并在您自己的笔记本中尝试这些。准备好后,创建一个新的 Markdown 单元格,我们将学习如何设置笔记本中文本的格式。 8. MarkdownMarkdown是一种轻量级、易于学习的标记语言,用于格式化纯文本。它的语法与 HTML 标签一一对应,因此这里的一些先验知识会有所帮助,但绝对不是先决条件。 请记住,本文是在 Jupyter notebook 中编写的,因此您目前看到的所有叙述性文本和图像都是用 Markdown 编写的。让我们用一个简单的例子来介绍基础知识:
这是运行单元格渲染后 Markdown 的外观:
Markdown 还有很多内容,尤其是在超链接方面,而且还可以简单地包含纯 HTML。一旦您发现自己突破了上述基础知识的极限,您可以 在 Markdown 的创建者 John Gruber 的网站上参考官方指南。 9. Kernel内核每个笔记本背后都有一个内核。当您运行代码单元时,该代码将在内核中执行。任何输出都返回到要显示的单元格。内核的状态随着时间和单元格之间持续存在——它与整个文档有关,而不是单个单元格。 例如,如果您在一个单元格中导入库或声明变量,它们将在另一个单元格中可用。让我们尝试一下,感受一下。首先,我们将导入一个 Python 包并定义一个函数:
一旦我们执行了上面的单元格,我们就可以在任何其他单元格中引用
无论笔记本中单元格的顺序如何,这都将起作用。只要一个单元已经运行,您声明的任何变量或您导入的库都将在其他单元中可用。 你可以自己试试,让我们再次打印出我们的变量。
这里没有惊喜!但是如果我们改变值会发生什么
如果我们运行上面的单元格,你认为会发生什么? 我们将得到一个输出,如: 大多数情况下,当您创建笔记本时,流程是自上而下的。但是返回进行更改是很常见的。当我们确实需要对较早的单元格进行更改时,我们可以在每个单元格的左侧看到的执行顺序,例如 如果我们想重置一些东西,内核菜单中有几个非常有用的选项:
如果您的内核曾经卡在计算上并且您希望停止它,您可以选择中断选项。 9.1 选择内核 Kernel您可能已经注意到 Jupyter 为您提供了更改内核的选项,实际上有许多不同的选项可供选择。当您通过选择 Python 版本从仪表板创建新笔记本时,您实际上是在选择要使用的内核。 有适用于不同版本 Python 的内核,也适用于 100 多种语言, 包括 Java、C 甚至 Fortran。数据科学家可能对R 和 Julia的内核以及 用于 Matlab 的imatlab 和 Calysto MATLAB 内核特别感兴趣 。 SoS内核 提供了一个单一的笔记本电脑中的多语言支持。 每个内核都有自己的安装说明,但可能需要您在计算机上运行一些命令。 10. 示例分析现在我们已经 了解 了 Jupyter Notebook 是什么,是时候看看 它们在实践中是如何使用的,这应该能让我们更清楚地了解 它们为何如此受欢迎。 现在终于可以开始使用前面提到的财富 500 强数据集了。请记住,我们的目标是了解美国最大公司的利润在历史上是如何变化的。 值得注意的是,每个人都会发展自己的喜好和风格,但一般原则仍然适用。如果愿意,您可以在自己的笔记本中遵循此部分,或者将其用作创建自己方法的指南。 10.1 命名你的笔记本在开始编写项目之前,您可能想给它一个有意义的名称。文件名 请注意,在浏览器中关闭笔记本选项卡不会像在传统应用程序中关闭文档那样“关闭”笔记本。Notebook 的内核将继续在后台运行,需要在它真正“关闭”之前关闭——尽管如果您不小心关闭了选项卡或浏览器,这非常方便! 如果内核关闭,您可以关闭选项卡而不必担心它是否仍在运行。 最简单的方法是从笔记本菜单中选择“文件 > 关闭并暂停”。但是,您也可以通过从 notebook 应用程序中转到“Kernel > Shutdown”或通过在仪表板中选择 notebook 并单击“Shutdown”(见下图)来关闭内核。 10.2 设置通常从专门用于导入和设置的代码单元开始,这样如果您选择添加或更改任何内容,您可以简单地编辑和重新运行该单元,而不会产生任何副作用。
我们将导入pandas 来处理我们的数据, 导入 Matplotlib 来绘制图表,并 导入Seaborn 使我们的图表更漂亮。导入NumPy也很常见, 但在这种情况下,pandas 会为我们导入它。 第一行不是 Python 命令,而是使用一种称为 line magic 的东西来指示 Jupyter 捕获 Matplotlib 图并在单元格输出中呈现它们。稍后我们将更多地讨论线条魔术,我们的高级 Jupyter Notebooks 教程 中也介绍了它们。 现在,让我们继续加载我们的数据。
在单个单元格中也这样做是明智的,以防我们需要在任何时候重新加载它。 10.3 保存和检查点现在我们已经开始了,最好的做法是定期保存。按下 每次我们创建一个新的 notebook 时,都会与 notebook 文件一起创建一个检查点文件。它位于您的保存位置的隐藏子目录中 默认情况下,Jupyter 会每 120 秒自动将您的笔记本保存到此检查点文件中,而不会更改您的主要笔记本文件。当您“保存并检查点”时,笔记本和检查点文件都会更新。因此,检查点使您能够在出现意外问题时恢复未保存的工作。 您可以通过“文件 > 恢复到检查点”从菜单恢复到检查点。 11. 调查我们的数据集现在我们真的在沸腾!我们的 notebook 已安全保存,我们已将数据集加载
让我们重命名这些列,以便我们以后可以参考它们。
接下来,我们需要探索我们的数据集。是否完整?熊猫是否按预期阅读?是否缺少任何值?
好的,这看起来不错——从 1955 年到 2005 年,每年有 500 行,包括在内。 让我们检查我们的数据集是否已按??预期导入。一个简单的检查是查看数据类型(或 dtypes)是否已被正确解释。
哦哦。看起来利润栏有问题——我们希望它
这很容易解释,但我们应该怎么做?嗯,这取决于缺少多少值。
这只是我们数据集的一小部分,但并非完全无关紧要,因为它仍然在 1.5% 左右。 如果包含N.A. 的行在这些年中大致均匀分布,那么最简单的解决方案就是删除它们。所以让我们快速看一下分布。
出于我们的目的,假设这是可以接受的,然后继续删除这些行。
我们应该检查是否有效。
太好了!我们已经完成了我们的数据集设置。 如果我们要将您的笔记本作为报告呈现,我们可以去掉我们创建的调查单元,这些单元包含在此处作为使用笔记本工作流程的演示,并合并相关单元(请参阅下面的高级功能部分以了解更多关于这个)来创建一个单一的数据集设置单元。 这意味着如果我们在其他地方弄乱了我们的数据集,我们可以重新运行设置单元来恢复它。 12. 使用 matplotlib 绘图接下来,我们可以通过绘制每年的平均利润来解决手头的问题。我们不妨也绘制收入,所以首先我们可以定义一些变量和一种方法来减少我们的代码。
现在让我们来策划吧!
也许收入可以告诉我们更多。
在Stack Overflow 的帮助下 ,我们可以将这些图与
也许有些公司的表现比其他公司好;顶部 10% 的利润比底部 10% 的波动更大还是更小? 接下来我们可以研究很多问题,很容易看出在笔记本中工作的流程如何与自己的思维过程相匹配。出于本教程的目的,我们将在此停止分析,但您可以继续自己挖掘数据! 这个流程帮助我们在一个地方轻松调查我们的数据集,而无需在应用程序之间切换上下文,我们的工作可以立即共享和重现。如果我们希望为特定受众创建更简洁的报告,我们可以通过合并单元格和删除中间代码来快速重构我们的工作。 13. 共享您的笔记本当人们谈论共享他们的笔记本时,他们通常会考虑两种范式。 大多数情况下,个人分享他们工作的最终结果,就像这篇文章本身一样,这意味着分享他们笔记本的非交互式、预渲染版本。但是,也可以借助Git等版本控制系统或Google Colab等在线平台在 notebook 上进行协作。 13.1 分享之前共享笔记本将完全以其导出或保存时的状态显示,包括任何代码单元的输出。因此,为了确保您的笔记本已准备好共享,可以这么说,在共享之前您应该采取以下几个步骤:
这将确保您的笔记本不包含中间输出,具有陈旧状态,并在共享时按顺序执行。 13.2 GitHub到 2018 年初,GitHub 上的公共笔记本数量超过 180 万,无疑是最流行的与世界共享 Jupyter 项目的独立平台。GitHub 拥有 GitHub 帐户后,在 GitHub 上共享笔记本的最简单方法实际上根本不需要 Git。自 2008 年以来,GitHub 提供了用于托管和共享代码片段的 Gist 服务,每个代码片段都有自己的存储库。要使用 Gists 共享笔记本:
这应该类似于以下内容: 创建您自己的 Git 存储库并在 GitHub 上共享它超出了本教程的范围,但 GitHub 提供了大量指南 供您自行开始。 一个额外的小费使用Git的是 一个例外添加 到你 14. NBViewer到 2015 年,NBViewer已经发展到每周渲染 数十万个笔记本,是网络上最受欢迎的笔记本渲染器。如果您已经在某个地方在线托管您的 Jupyter Notebook,无论是 GitHub 还是其他地方,NBViewer 都会呈现您的笔记本并提供一个可共享的 URL。它作为 Project Jupyter 的一部分作为免费服务提供,可在 nbviewer.jupyter.org 上获得。 NBViewer 最初是在 GitHub 的 Jupyter Notebook 集成之前开发的,它允许任何人输入 URL、Gist ID 或 GitHub 用户名/repo/文件,并将笔记本呈现为网页。Gist 的 ID 是其 URL 末尾的唯一编号;例如,中最后一个反斜杠后的字符串 https://gist.github.com/zgpeace/8d3eb8c803a54d1ca797fa26cb68bd4c。如果您输入 GitHub 用户名或用户名/存储库,您将看到一个最小的文件浏览器,可让您浏览用户的存储库及其内容。 显示笔记本时显示的 URL NBViewer 是基于它正在呈现的笔记本的 URL 的常量,因此您可以与任何人共享它,只要原始文件保持在线,它就会工作 - NBViewer 不会缓存文件长。 15. 附加功能:Jupyter Notebook 扩展我们已经涵盖了在 Jupyter Notebooks 中运行所需的一切。 15.1 什么是扩展?扩展正是它们听起来的样子——扩展 Jupyter Notebooks 功能的附加功能。虽然基本的 Jupyter Notebook 可以做很多事情,但扩展提供了一些额外的功能,可能有助于特定的工作流程,或者只是改善用户体验。 例如,一个名为"Table of Contents"“目录”的扩展为您的笔记本生成一个目录,以使大型笔记本更易于可视化和导航。 另一个称为 Variable Inspector变量检查器,将向您显示笔记本中每个变量的值、类型、大小和形状,以便于快速参考和调试。 另一个名为 ExecuteTime 的函数可让您知道每个单元格运行的时间和时间——如果您想加快代码片段的速度,这会特别方便。 这些只是冰山一角;有许多扩展可用。 15.2 在哪里可以获得扩展?要获得扩展,您需要安装 Nbextensions。您可以使用 pip 和命令行执行此操作。如果您有 Anaconda,最好通过 Anaconda Prompt 而不是常规命令行来执行此操作。 关闭 Jupyter Notebooks,打开 Anaconda Prompt,然后运行以下命令:
完成后,启动笔记本,您应该会看到一个 Nbextensions 选项卡。单击此选项卡将显示可用扩展的列表。只需勾选您想要启用的扩展的方框,您就可以开始比赛了! 15.3 安装扩展一旦安装了 Nbextensions 本身,就不需要额外安装每个扩展。但是,如果您已经安装了 Nbextensons 但没有看到该选项卡,那么您并不孤单。Github 上的这个帖子详细介绍了一些常见问题和解决方案。 16. 附加:Jupyter 中的 Line Magics之前我们 16.1 如何在 Jupyter 中使用魔法一个好的第一步是打开一个 Jupyter Notebook,
如果 automagic 处于打开状态,您只需在代码单元格中自己的一行中键入它,然后运行该单元格即可运行魔法。如果它关闭,您将需要 许多魔法需要额外的输入(很像一个函数需要一个参数)来告诉它们如何操作。我们将在下一节中查看一个示例,但是您可以通过使用问号运行它来查看任何魔法的文档,如下所示:
当您在笔记本中运行上述单元格时,屏幕上会弹出一个冗长的文档字符串,其中包含有关如何使用魔法的详细信息。 16.2 一些有用的魔法命令我们在高级 Jupyter 教程中介绍了更多内容,但这里有一些可以帮助您入门: 17. 最后的想法从头开始,我们已经掌握了 Jupyter Notebooks 的自然工作流程,深入研究了 IPython 更高级的功能,最终学会了如何与朋友、同事和世界分享我们的工作。我们通过笔记本本身完成了这一切! 应该清楚笔记本如何通过减少上下文切换和模拟项目期间思想的自然发展来促进富有成效的工作体验。使用 Jupyter Notebooks 的强大功能也应该是显而易见的,我们涵盖了大量线索,以帮助您开始在自己的项目中探索更高级的功能。 如果您想为自己的笔记本获得更多灵感,Jupyter 已经整理了 一个有趣的 Jupyter 笔记本图库 ,您可能会发现它们对您有所帮助,并且 Nbviewer 主页 链接到一些非常精美的优质笔记本示例。 18. 更多优秀的 Jupyter Notebooks 资源
参考https://www.dataquest.io/blog/jupyter-notebook-tutorial/ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 5:33:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |