魔术方法 python
我在Cleveland的PyCon 2019上遇到了很多很棒的人,并且学到了很多关于Python社区如何工作的知识。 但是我的主要技术要诀与JupyterLab的神奇之处有关 ,它被描述为Jupyter Notebook的基于Web的用户界面,该应用程序“可让您创建和共享包含实时代码,方程式,可视化和叙述性的文档文本。”
JupyterLab是Python编程的上帝模式。
-Matt @ Home🏡(@mbbroberg) 2019年5月2日
这是我到目前为止#pycon2019的要点 。
项目Jupyter,Jupyter Notebook,JupyterLab和Python
在PyCon之前,我听说过Jupyter Notebook,但是我从不完全了解它与Python的关系。 让我们从顶部开始。
Jupyter项目是一个总括性组织,负责监督几个交互式且高度可视化的软件开发界面的设计,这些界面允许以可视方式执行代码。
Jupyter项目是一个非营利性开源项目,于2014年从IPython项目诞生,它的发展旨在支持所有编程语言的交互式数据科学和科学计算。 Jupyter将永远是100%的开源软件,所有用户均可免费使用,并根据经过修改的BSD许可的自由条款发布 。
Jupyter项目的强大功能以内核的形式出现,内核充当执行文档中包含的代码的“计算引擎”。 最初的内核是用于Python的,称为IPython,尽管还有更多可用的内核。 截止到今天, 项目Wiki上列出了128个内核,包括从Ansible到Fortran的所有内容。
![JupyterLab界面的示例 JupyterLab UI](https://i-blog.csdnimg.cn/blog_migrate/686be72b2d343819810a5e3cc786c902.png)
Jupyter项目更明显的部分是其用户界面(UI)形式,开发人员可以在其中以内核支持的任何语言直观地进行编程。 该项目下最知名的UI是Jupyter Notebook ,用户可以在其中开发笔记本电脑中的软件。
笔记本电脑从本质上讲将基于控制台的方法扩展到交互式计算的新方向,提供了一个适用于捕获整个计算过程的基于Web的应用程序:开发,记录和执行代码,以及传达结果。
Jupyter Notebook被认为是该组织的旗舰项目,自2011年开始以来,它就对代码可视化产生了巨大影响。最近, JupyterLab作为Jupyter UI的未来推出了更具模块化的设计。
Jupyter Notebook和JupyterLab都允许以更直观的方式进行Python开发,并且是编辑代码的强大方法。
为什么选择JupyterLab而不是Jupyter Notebook?
Jupyter Notebook的悠久历史为灵活性带来了一些代价。
根据Jupyter的博客 ,该项目自2011年以来的背景使其“难以自定义和扩展”。 当我阅读有关所有这些工具和标准的长期发展方式时,这很有道理。 早在2001年, 费尔南多·佩雷斯(Fernando Perez)就开发了Python专用的笔记本标准IPython。 IPython保持了用Python语言编写笔记本的标准方法,近年来,Jupyter项目成为了渲染笔记本的地方。 Jupyter Notebook 自述文件提供了一个摘要:
Jupyter notebook是Project Jupyter的与语言无关HTML Notebook应用程序。 2015年,Jupyter笔记本作为IPython代码库的Big Split™的一部分发布。 IPython 3是最后一个主要的整体发行版,其中包含与语言无关的代码(例如IPython Notebook )和特定于语言的代码(例如IPython内核,用于Python) 。 随着计算跨越多种语言,Project Jupyter将继续在此存储库中开发与语言无关的Jupyter笔记本,并在社区的帮助下开发特定于语言的内核,这些内核可在其自己的离散存储库中找到。 [ Big Split™公告 ] [ Jupyter Ascending博客文章 ]
在2018年,JupyterLab项目宣布已为用户准备就绪 。 我的决定是从最近开始,那就是在标准化方面有更多确定性时,以及如何提供高性能笔记本电脑体验,这对我来说很有意义。 它还通过建立扩展系统来解决Jupyter Notebook的扩展挑战,该系统将摆脱扩展笔记本时面临的挑战。
这一切与Python编程有什么关系? Python是一种非常流行的编程语言,在数据科学分析中正变得越来越流行。 任何IPython文件(.ipynb)都可以在Jupyter项目中运行,以提供令人难以置信的开发体验。
项目 | 描述 |
---|---|
Project Jupyter | Jupyter项目的存在是为跨多种编程语言的交互式计算开发开源软件,开放标准和服务。” |
Jupyter Notebook | “这款笔记本电脑将基于控制台的方法扩展到了互动性计算的全新方向。” |
JupyterLab | “ JupyterLab是Project Jupyter的下一代基于Web的用户界面。” |
IPython | “ IPython为交互式计算提供了丰富的体系结构。” |
如果您混淆了所有这些项目名称,请记住以下几点:
- Jupyter项目提供了可视化编程语言的标准。
- Jupyter Notebook是一种非常流行的可视化软件。
- JupyterLab是Jupyter Notebook的现代重新设计。
- IPython提供了在这些项目中运行Python代码的工具。
根据JupyterLab文档 ,它将最终取代Jupyter Notebook。
通过教程尝试
现在,您已经对术语和历史有了更多的了解,请尝试在PyCon上展示的“ IPython和Jupyter的深度” 教程 。 我发现这是JupyterLab的引人注目的介绍。
安装后(我使用Anaconda来管理安装),在JupyterLab中导航到“ 1- Beyond Plain Python.ipynb”。
![JupyterLab教程 JupyterLab tutorial](https://i-blog.csdnimg.cn/blog_migrate/ed4133ccfe16a064865fb4dd77dde270.png)
魔术是魔术
JupyterLab具有以%符号开头的特别强大的功能。 您可以运行的许多功能中的每一个都使JupyterLab成为我见过的最灵活的开发环境。
当您仍在上面加载的笔记本中(上面的屏幕快照在此处放大)时,请按Option + Return (或Alt + Enter )以创建一个新单元格:
![新建一个单元格 Make a new cell](https://i-blog.csdnimg.cn/blog_migrate/86c89b49f87ed3e02b5c46c207c5a1cb.png)
然后,使用爆炸/感叹号( ! )(我最喜欢的魔法)将命令发送到当前目录中的终端会话。 例如,运行!ls列出本地文件:
![列出本地文件 List local files](https://i-blog.csdnimg.cn/blog_migrate/26fc3a593fc308b31c3a7bed19c48a43.png)
当您将Python与魔术混合使用时,这会变得更加强大。 例如,您可以将本地文件放入Python变量中:
![将本地文件拉入Python变量 Pull local files into a Python variable](https://i-blog.csdnimg.cn/blog_migrate/bd00bf707b7084c625c5c756430978f8.png)
尽管Python具有功能强大的os模块,可让您与开发环境进行交互,但可以选择使用Bash语法来快速提取所需的数据,同时将其保留在Python对象类型(如字符串列表)中,这很有趣。
外卖
如果您曾经想使用Jupyter Notebook探索Python,希望本文能帮助您了解生态系统的发展方式,并决定立即进入JupyterLab。 如果你是新来的Python 和新的命令行,JupyterLab会让你觉得你有从一开始就超级大国。 通过本UI,我从未像在本教程中那样有趣。 换句话说,JupyterLab感觉就像在启用了作弊代码的情况下玩视频游戏。 您似乎可以做任何事!
如果您更熟悉基于Linux的命令行界面,请在开始使用时一定要使用bang运算符。 编写!ls -la将调用您的默认终端仿真器,并让您运行命令以确保您了解自己的位置和所从事的工作。
我强烈建议您在学习本教程的同时探索JupyterLab中可用的更多魔术 。
翻译自: https://opensource.com/article/19/5/jupyterlab-python-developers-magic
魔术方法 python