当前位置 博文首页 > the7主题:Jupyter notebook操作技巧

    the7主题:Jupyter notebook操作技巧

    作者:the7主题 时间:2021-02-18 22:32

    学习笔记:Jupyter notebook操作技巧

    • 一、jupyter notebook简介、用途、优势和缺点
    • 二、 单元Cell:
    • 三、操作技巧
      • - 给Jupyter换主题
      • - 笔记本扩展(nbextensions)——高效插件
      • - Ipywidgets小工具组件
      • - Jupyter播放PPT——slide幻灯片操作
      • - Qgrid——类似Excel里的筛选功能
      • - 嵌入链接和pdf
      • Cython
      • 常用魔法命令(注意是在Python kernel中适用)
    • 在pycharm中使用jupyter

     

    一、jupyter notebook简介、用途、优势和缺点

    1. 简介
      Jupyter notebook源于Fernando Perez发起的IPython 项目
      IPython 是一种交互式shell,与普通的Python shell相似,但有些更高级的功能,例如语法高亮显示和代码补全,有magic操作。Jupyter notebook将IPython做成了一种开源的Web应用,允许用户创建和共享包含代码、方程式、可视化和文本的文档。Jupyter这个名字是它要服务的三种语言的缩写:Julia,Python和R,与“木星(jupiter)”谐音,事实上起名也是 Jupyter项目组对伽利略发现木星卫星时所用笔记本的致敬。
      IPython时代 ——>Jupyter Notebook时代——Jupyter Lab时代——Jupyter Hub时代
    2. 用途
      数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等等。
    3. 优势
      可选择语言:支持超过40种编程语言,包括Python、R、Julia、Scala等。
      分享笔记本:可以使用电子邮件、Dropbox、GitHub和Jupyter Notebook Viewer与他人共享。
      交互式输出:代码可以生成丰富的交互式输出,包括HTML、图像、视频、LaTeX等等。
      大数据整合:通过Python、R、Scala编程语言使用Apache Spark等大数据框架工具。支持使用pandas、scikit-learn、ggplot2、TensorFlow来探索同一份数据。
      ~~提供了一种人性化的REPL终端,以及文档代码一体化等等。
    4. 缺点
      每次启动的时候相对繁琐,若是启动本地安装的IDE,一个命令或者点击一下图标即可,但是jupyter notebook要进入命令行/终端,输“jupyter notebook”,若使用的是虚拟环境,首先还要激活虚拟环境,而且启动后它会占用一个终端或命令行窗口,如果意外关闭则会终止jupyter notebook服务。

    二、 单元Cell:

    • 两种模式: 命令模式(Command Mode)与编辑模式(Edit Mode)。
      • 按y m切换markdown和code模式
      • 点Esc键或运行单元格(ctrl-enter)切换回命令模式、按Enter键或者双击cell变为编辑状态。
    • 四种功能: Code、Markdown、Raw NBConvert、Heading
      • Jupyter Notebook已经取消了Heading状态,即标题单元格。取而代之的是Markdown的一级至六级标题。而Raw NBconvert目前极少用到。
        • code状态下运行代码
          In[ ]程序未运行
          In[num]程序运行后
          In[*]程序正在运行

    三、操作技巧

    通过终端打开jupyter后,保持终端不要关闭,否则会断开与本地服务器的链接。
    打开后,浏览器地址为:http://localhost:8888。其中,“localhost”指的是本机,“8888”则是端口号。多打开一个则端口号+1。

    代码状态下 按h 跳出快捷键帮助
    jupyter中命令之前加个“!”,即可执行shell命令。

    - 给Jupyter换主题

    pip install jupyterthemes	#安装
    jt -l 	#加载可用主题列表
    jt -t <name of the theme>		#选择想要的主题
    jt -r	#恢复原来的主题
    ======================================================================
    其中 <name of the theme> 包括:
    chesterish、grade3、gruvboxd、gruvboxl monokai、oceans16、onedork、solarizedd、solarizedl
    

    - 笔记本扩展(nbextensions)——高效插件

    是一种JavaScript模块,将一系列 js 脚本嵌入到 Jupyter 中,可以加载到笔记本前端页面上,可以大大提升用户体验。
    功能包括:Hinterland跳出下拉菜单、Snippets直接插入代码段、拆分单元格,相邻的模式 分栏、生成目录、 折叠标题Collapsible Headings、Autopep8美化代码、ExecutionTime 获得单元格执行时间
    代码(省略 我们一般使用的%time以及基于装饰器的计时器函数来度量函数的时间。)…

     #conda安装nbextensions
     conda install -c conda-forge jupyter_nbextensions_configurator
     #pip安装nbextensions
    第1步:用 pip 来安装它
    pip install jupyter_contrib_nbextensions
    第2步:安装关联的 JavaScript 和 CSS 文件
    jupyter contrib nbextension install --user
    

    - Ipywidgets小工具组件

    Ipywidgets作者:Martin Renou,QuantStack的科学软件工程师。
    Ipywidgets功能:多种的Python对象,通常在Jupyter Notebook或JupyterLab中具有可视化表示:按钮,滑块,文本输入,复选框等。
    详细用法参考:https://mp.weixin.qq.com/s/9We5ovP88lAICrDKQIQKxg

    - Jupyter播放PPT——slide幻灯片操作

    默认是一个单元格cell就是一张PPT
    方法一: Jupyter内置PPT,View → Cell Toolbar → Slideshow,选择子幻灯片,然后进入到ipynb文件所保存的文件夹中,路径中输入,则会打开.html文件即为所需要的slide

    	 jupyter nbconvert 文件名.ipynb --to slides --post serve
    

    方法二: 使用RISE插件。用到reveal.js来运行PPT,可以不退出PPT,直接运行代码。

    详细参考:https://github.com/damianavila/RISE
    

    - Qgrid——类似Excel里的筛选功能

    用pip安装:
    pip install qgrid
    jupyter nbextension enable --py --sys-prefix qgrid	#only required if you have not enabled the ipywidgets nbextension yet
    jupyter nbextension enable --py --sys-prefix widgetsnbextension
    用conda安装:
    #only required if you have not added conda-forge to your channels yet
    conda config --add channels conda-forge
    conda install qgrid
    

    - 嵌入链接和pdf

    from IPython.display import IFrame
    IFrame('https://www.baidu.com/', width=800, height=450)	#嵌入链接
    IFrame('https://arxiv.org/pdf/1406.2661.pdf', width=800, height=450)	#嵌入pdf
    

    Cython

    Cython是个能用 Python 编译 C 语言的程序包,这也是 Numpy 和 Pandas 运行快的主因。
    通过pip install cython 安装 Cython,会发现在没有更改任何代码的情况下,性能立马提高了两倍

    常用魔法命令(注意是在Python kernel中适用)

    基于IPython内核,Jupyter可以访问IPython内核中的所有Magics。

    %lsmagic	显示所有magic方法
    %:			行魔法函数,只对本行代码生效。
    %%:		Cell魔法函数,在整个Cell中生效,必须放于Cell首行。
    %lsmagic:	列出所有的魔法函数
    %magic		查看各个魔法函数的说明
    ?后面加上魔法函数名称,可以查看该函数的说明
    
    %run 用来运行代码脚本
    %timeit 测试单行语句的执行时间
    %%timeit 测试整个单元中代码的执行时间——使用Python timeit模块 ,该模块运行一条语句100,000次(默认情况下),然后提供最快的三次平均值。
    % matplotlib inline 显示 matplotlib 包生成的图形
    %%writefile 写入文件
    %pdb 调试程序		(Jupyter 自己的调试界面The Python Debugger (pdb))
    %pwd 查看当前工作目录
    %ls 查看目录文件列表
    %reset 清除全部变量
    %who 查看所有全局变量的名称,若给定类型参数,只返回该类型的变量列表
    %whos 显示所有的全局变量名称、类型、值/信息
    %xmode Plain 设置为当异常发生时只展示简单的异常信息
    %xmode Verbose 设置为当异常发生时展示详细的异常信息
    %debug bug调试,输入quit退出调试
    %env 列出全部环境变量
    

    Pdb中可使用的命令见链接(https://docs.python.org/3.5/library/pdb.html#debugger-commands)

    Jupyter notebook 和 Jupyter lab 的区别
    notebook 打开的只是单个文件的执行文件,而 lab 相当于打开了一个内置的编辑器,可以对目录内的所有文件进行操作,并且内置了 python 的调试和终端.
    Jupyterlab 的基本理念是将经典 notebook 中的所有功能以及新特性整合在一起。

    http://www.dtmao.cc/news_show_715227.shtml

    bk