广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么运行Python的神器Jupyter Notebook
  • 149
分享到

怎么运行Python的神器Jupyter Notebook

2023-06-15 08:06:01 149人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了怎么运行python的神器Jupyter Notebook,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Jupyter NotebookJupyter项目是

这篇文章主要介绍了怎么运行python的神器Jupyter Notebook,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Jupyter Notebook

Jupyter项目是从IPython项目中分出去的,在Ipython3.x之前,他们两个是在一起发布的。在Ipython4.x之后,Jupyter作为一个单独的项目进行开发和管理。因为Jupyter不仅仅可以运行Python程序,它还可以执行其他流程编程语言的运行。

Jupyter Notebook包括三个部分,第一个部分是一个WEB应用程序,提供交互式界面,可以在交互式界面中运行相应的代码。

怎么运行Python的神器Jupyter Notebook

上图是NoteBook的交互界面,我们可以对文档进行编辑,运行等操作。

主要的功能如下:

  • 在浏览器中进行代码编辑,自动语法突出显示,缩进和制表符完成/自检功能。

  • 从浏览器执行代码的能力,并将计算结果附加到生成它们的代码上。

  • 使用诸如html,LaTeX,PNG,SVG等富媒体表示来显示计算结果。例如,可以内嵌包含matplotlib库渲染的具有出版质量的图形。

  • 使用markdown标记语言在浏览器中对富文本进行的编辑(可以为代码提供注释)不仅限于纯文本。

  • 使用LaTeX轻松在markdown单元中包含数学符号的能力,并由MathJax本地呈现。

第二个部分就是NoteBook的文档了,这个文档存储了要运行的代码和一些描述信息。一般这个文档是以.ipynb的后缀进行存储的。

notebook文档是以JSON的形式存储的,并用base64进行编码。使用json的好处就是可以在不同的服务器中方便的进行数据的交互。

Notebook documents中除了可运行的代码文件,还可以存储说明等解释性内容,从而将代码和解释内容完美结合,尤其适合做学习笔记使用。

笔记本可以通过nbconvert命令导出为多种静态格式,包括HTML,reStructuredText,LaTeX,pdf等多种格式。

另外文档还可以方便的在网络上进行共享。

第三个部分就是代码运行的核心Kernels,通过不同的Kernels搭配,notebook可以支持运行多种程序。比如:Python,java,Go,R,ruby,nodejs等等。

这些Kernels和notebook之间是以Json的形式通过MQ来进行通信的。

启动notebook server

有了文档之后,如果我们想要运行文档,需要启动notebook server。

jupyter notebook

默认情况下会开启下面的URL: Http://127.0.0.1:8888

启动的时候还可指定要打开的.ipynb文件:

jupyter notebook my_notebook.ipynb

具体的notebook界面的操作这里就不多介绍了,基本上和普通的编译器差不多。大家可以自行探索。

notebook document 的结构

notebook中包含了多个cells,每个cell中包含了多行文本输入字段,可以通过Shift-Enter 或者工具栏中的播放按钮来执行其中的代码。

这里的cell有三种类型,分别是code cells,markdown cells和raw cells。

code cells

代码单元允许您编辑和编写新代码,并突出显示完整的语法和制表符。 您使用的编程语言取决于内核,默认内核(IPython)运行Python代码。

执行代码单元时,它包含的代码将发送到与笔记本关联的内核。 然后,从该计算返回的结果将在笔记本中显示为单元格的输出。 输出不仅限于文本,还有许多其他可能的输出形式,包括matplotlib图形和HTML表格(例如,在pandas数据分析包中使用的表格)。

我们看一个code cells的例子:

#%%import numpy as npmy_arr = np.arange(1000000)my_list = list(range(1000000))

每个单元格是以  #%% 来进行分隔的。

Ipython本身还支持多种富文本的展示格式,包括HTML,JSON,PNG,JPEG,SVG,LaTeX等。

Ipython提供了一个display方法,我们可以使用display来展示要呈现的对象:

from IPython.display import display

display(obj) 将会寻找这个对象所有可能的展示类型,并从中挑选一个最适合的类型进行展示,并将结果存储在Notebook文档里面。

如果你想展示特定类型的对象,那么可以这样:

from IPython.display import (    display_pretty, display_html, display_jpeg,    display_png, display_json, display_latex, display_svg)

举个展示图片的例子:

from IPython.display import Imagei = Image(filename='../images/ipython_logo.png')idisplay(i)

上面的例子中i包含了一个Image对象,直接调用i即可展示,我们也可以显示的调用display(i)。

其他的富文本类型可以参考Image,使用方法都是类似的。

markdown cells

markdown是一种简介的标记语言,使用起来非常简单,使用范围非常广泛,所以notebook document也支持markdown的语法。

先看一个markdown cell的例子:

#%% md```python$ pythonPython 3.6.0 | packaged by conda-forge | (default, Jan 13 2017, 23:17:12)[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linuxType "help", "copyright", "credits" or "license" for more infORMation.>>> a = 5>>> print(a)5```

markdown中的语法在notebook中都是可以用的。

还支持标准的LaTeX 和 AMS-LaTeX语法。

raw cells

原始单元格提供了一个可以直接写入输出的位置。 notebook不会对原始单元格中的内容进行计算。

以模块的形式导入Jupyter Notebooks

有时候我们希望以模块的形式导入Jupyter Notebooks,但是可惜的是,Jupyter Notebooks并不是一个标准的python程序,不过Python提供了一些钩子程序,让我们能够方便的进行导入。

首先,我们需要导入一些基本的api

import io, os, sys, typesfrom IPython import get_ipythonfrom nbformat import readfrom IPython.core.interactiveshell import InteractiveShell

接下来需要注册NotebookFinder到sys.meta_path:

sys.meta_path.append(NotebookFinder())

这个NotebookFinder就是定义的钩子。

我们看下NotebookFinder的定义:

class NotebookFinder(object):    """Module finder that locates Jupyter Notebooks"""    def __init__(self):        self.loaders = {}    def find_module(self, fullname, path=None):        nb_path = find_notebook(fullname, path)        if not nb_path:            return        key = path        if path:            # lists aren't hashable            key = os.path.sep.join(path)        if key not in self.loaders:            self.loaders[key] = NotebookLoader(path)        return self.loaders[key]

里面使用了两个重要的方法,find_notebook用来找到notebook,和NotebookLoader,用来加载notebook。

看下find_notebook的定义:

def find_notebook(fullname, path=None):    """find a notebook, given its fully qualified name and an optional path    This turns "foo.bar" into "foo/bar.ipynb"    and tries turning "Foo_Bar" into "Foo Bar" if Foo_Bar    does not exist.    """    name = fullname.rsplit('.', 1)[-1]    if not path:        path = ['']    for d in path:        nb_path = os.path.join(d, name + ".ipynb")        if os.path.isfile(nb_path):            return nb_path        # let import Notebook_Name find "Notebook Name.ipynb"        nb_path = nb_path.replace("_", " ")        if os.path.isfile(nb_path):            return nb_path

看下NotebookLoader的定义:

class NotebookLoader(object):    """Module Loader for Jupyter Notebooks"""    def __init__(self, path=None):        self.shell = InteractiveShell.instance()        self.path = path    def load_module(self, fullname):        """import a notebook as a module"""        path = find_notebook(fullname, self.path)        print ("importing Jupyter notebook from %s" % path)        # load the notebook object        with io.open(path, 'r', encoding='utf-8') as f:            nb = read(f, 4)        # create the module and add it to sys.modules        # if name in sys.modules:        #    return sys.modules[name]        mod = types.ModuleType(fullname)        mod.__file__ = path        mod.__loader__ = self        mod.__dict__['get_ipython'] = get_ipython        sys.modules[fullname] = mod        # extra work to ensure that magics that would affect the user_ns        # actually affect the notebook module's ns        save_user_ns = self.shell.user_ns        self.shell.user_ns = mod.__dict__        try:          for cell in nb.cells:            if cell.cell_type == 'code':                # transform the input to executable Python                code = self.shell.input_transformer_manager.transform_cell(cell.source)                # run the code in themodule                exec(code, mod.__dict__)        finally:            self.shell.user_ns = save_user_ns        return mod

有了他们,我们就可以直接import我们自己编写的notebook了。

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么运行Python的神器Jupyter Notebook”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网Python频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么运行Python的神器Jupyter Notebook

本文链接: https://www.lsjlt.com/news/279031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么运行Python的神器Jupyter Notebook
    这篇文章主要介绍了怎么运行Python的神器Jupyter Notebook,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Jupyter NotebookJupyter项目是...
    99+
    2023-06-15
  • 详解运行Python的神器Jupyter Notebook
    目录Jupyter Notebook启动notebook servernotebook document 的结构code cellsmarkdown cellsraw cells以模块的形式导入Jupyter Not...
    99+
    2022-06-02
    python jupyter notebook
  • 怎么在终端运行 Jupyter Notebook
    本篇内容介绍了“怎么在终端运行 Jupyter Notebook ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • 怎么安装运行和连接Jupyter Notebook
    这篇文章主要介绍了怎么安装运行和连接Jupyter Notebook,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Jupyter Notebook是一个开源的交互式Web应用...
    99+
    2023-06-04
  • Jupyter notebook中怎么添加Pytorch运行环境
    这篇文章主要介绍“Jupyter notebook中怎么添加Pytorch运行环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Jupyter notebook中怎么添加Pyto...
    99+
    2023-07-05
  • 怎么远程使用服务器上的Jupyter notebook
    本文小编为大家详细介绍“怎么远程使用服务器上的Jupyter notebook”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么远程使用服务器上的Jupyter notebook”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-07-05
  • Python必备的debug神器pdb怎么用
    这篇文章给大家介绍Python必备的debug神器pdb怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。学Python 必备的debug 神器-pdb首先,介绍一下 pdb 调试,pdb 是 python 的一个内...
    99+
    2023-06-02
  • 怎么运行Linux中的python脚本
    今天小编给大家分享一下怎么运行Linux中的python脚本的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Linux运行py...
    99+
    2023-06-28
  • 怎么让sublime编辑器运行python程序
    这篇文章主要讲解了“怎么让sublime编辑器运行python程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么让sublime编辑器运行python程序”吧!首先要安装sublime和...
    99+
    2023-06-02
  • python字典是怎么进行运算的
    本篇内容主要讲解“python字典是怎么进行运算的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python字典是怎么进行运算的”吧!说明字典运算中的键必须是不可变类型,如整数(int)、浮点数...
    99+
    2023-06-20
  • 怎么提升python代码的运行速度
    这篇文章给大家介绍怎么提升python代码的运行速度,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写...
    99+
    2023-06-14
  • python怎么停止当前运行的函数
    要停止当前运行的函数,可以使用`return`语句来终止函数的执行。例如: def my_function(): # 一些代...
    99+
    2023-10-28
    python
  • 怎么在Python的线程中运行协程
    这篇文章主要讲解了“怎么在Python的线程中运行协程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Python的线程中运行协程”吧!有没有办法让同步代码与异步代码看起来也是同时运行的...
    99+
    2023-06-16
  • 怎么用Python实现简易的自制头像神器
    这篇文章主要介绍“怎么用Python实现简易的自制头像神器”,在日常操作中,相信很多人在怎么用Python实现简易的自制头像神器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python实现简易的自制头...
    99+
    2023-06-29
  • 手机上的python怎么运行,python在手机上怎么操作
    大家好,小编来为大家解答以下问题,python在手机上怎么操作,手机上的python怎么运行,现在让我们一起来看看吧! 1、手机浏览器运行python 手机浏览器运行python是因为手机浏览器和python两者之间是可以互相兼容的,手机...
    99+
    2023-10-18
    python 智能手机
  • 怎么让运行中的python脚本在后台执行
    这篇文章主要介绍“怎么让运行中的python脚本在后台执行”,在日常操作中,相信很多人在怎么让运行中的python脚本在后台执行问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么让运行中的python脚本在后...
    99+
    2023-06-05
  • 阿里云服务器运行python程序怎么打开
    在阿里云服务器上运行 Python 程序,需要使用终端或命令行界面。以下是打开 Python 程序的步骤: 登录到阿里云服务器,打开终端或命令行界面。 确认 Python 是否已经安装。在终端或命令行界面中输入以下命令: python...
    99+
    2023-10-26
    阿里 服务器 程序
  • docker怎么停止运行中的容器
    要停止运行中的Docker容器,可以使用以下命令:1. 查看正在运行的容器列表:```docker ps```2. 停止指定的容器:...
    99+
    2023-10-09
    docker
  • 怎么用Python装饰器实现函数运行时间的计算
    这篇文章主要介绍“怎么用Python装饰器实现函数运行时间的计算”,在日常操作中,相信很多人在怎么用Python装饰器实现函数运行时间的计算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python装饰...
    99+
    2023-06-29
  • 阿里云服务器运行python程序错误怎么办
    首先,我们需要明确错误的具体表现和可能的原因。通常情况下,错误可以是代码错误、配置错误、权限问题等多种类型。例如,如果是代码错误,我们可以通过查看代码文档、日志等方式来解决;如果是配置错误,我们可以检查服务器配置文件,确保配置正确;如果是权...
    99+
    2023-10-28
    阿里 错误 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作