zoukankan      html  css  js  c++  java
  • Python---jupyter notebook

    Python---jupyter notebook

    引用https://blog.csdn.net/lee_j_r/article/details/52791228。

      官网的介绍是:Jupyter Notebook是一个Web应用程序,允许您创建和共享包含实时代码,方程,可视化和说明文本的文档。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

      简单的介绍就是:Jupyter Notebook是Ipython的升级版,而Ipython可以说是一个加强版的交互式 Shell,也就是说,它比在terminal里运行python会更方便,界面更友好,功能也更强大。怎么强大法,往下看就知道了。

    一、jupyter notebook安装

      学会了python还不行,还得学习一下ipython,后者更加方便快捷,更有自动补全功能。而ipython notebook是ipython的最好展现方式。最新的版本改名为jupyter notebook,我们先来安装一下。

    # sudo pip install jupyter

    安装成功后,运行notebook

    # jupyter notebook

    就会在浏览器中打开notebook,  点击右上角的New-python2, 就可以新建一个网页一样的文件,扩展名为ipynb。在这个网页上,我们就可以像在命令行下面一样运行python代码了。输入代码后,按shift+enter运行,更多的快捷键,可点击上方的help-Keyboard shortcuts查看,或者先按esc退出编辑状态,再按h键查看。

    另外:python可视化编程环境可视编程IDE:spyder。百度自行安装即可。

    二、jupyter notebook使用

      1、打开一个新文档

      在主页面的右上角点new即可新建一个你想要的文件类型。

      如上图,jupyter也可以打开一个terminal,还可以作为一个text文本编辑器,功能明显是比terminal强大了。

    下面的Notebooks类型除了python 也是可以加入其他类型的文档的,具体方法百度一下就好。

      2、python编辑器介绍

    点击python2后会出现一下界面:

      稍微介绍一下notebook 界面的组成部分1)notebook 的名称2)主工具栏提供了保存、导出、重载 notebook,以及重启内核等选项3)快捷键4)notebook 编辑区。

      最下面的哪个 In [ ]: 的框叫做单元格,你可以把你的代码分成一段段的单元格输入,然后可以逐个单元格地运行。注意,这个功能是非常友好的,有时候只修改了中间的一小段代码,又不想全部代码都要重新运行的时候这个功能就非常有用了。另外,单元格是可以改变顺序的。而且可以输出图片和绘图!非常强大吧!

      这些只要稍微尝试一下就懂的,下面主要介绍一些常用的技巧

    **注意,jupyter notebook 是支持 TAB 键自动补充单词的,再一次展示了其强大友好的一面!

      A.修改文档名称

    方法一:点上图的Untitled

    方法二:点File,再点rename

      B.导出文档

    步骤:点File,再点Download as

      发现里面支持好几种格式的导出,第一个ipynb是notebook的格式,是一种类json的格式保存,其他的建议你们都试一试,你会感到非常惊喜的。

      C.保存

    Ctrl + S 快捷键的可以保存你的文档的,默认是保存为ipynb,保存在你的主目录下!

      D.单元格格式

    注意到快捷键栏中有一个code的下拉框,点开发现有几个选项:

    这里介绍一下

    • Code格式就是正常的python代码格式
    • Markdown的一个text文档编辑格式,就像在word里编写一样
    • Heading就是给Markdown的句子设置标题等级,像word的标题一,标题二...
    • Raw NBConvert 没用过不了解,可以自行百度或者看官网介绍

      下面举例说明一下:选择一个空的单元格,code下拉框选择Heading,会出现一个不同类型的 cell:

    改变单元格类型时弹出消息中有解释,后面那个单元格以 # 标记开头,意味着这是一个一级标题。如果需要子标题,可以使用以下标记表示:

    # : 一级标题## : 二级标题### : 三级标题...

    输入内容后再运行一下(快捷栏里有),会出现类似下面的情况:

    这里一共输入了三级标题,点其中一个,你会发现它的code下拉栏显示是markdown类型

    你以后代码里print 的内容都是以markdown的格式显示的。

      E.快捷键

    常用的快捷键是:

    • Ctrl + Enter: 执行单元格代码
    • Shift + Enter: 执行单元格代码并且移动到下一个单元格
    • Alt + Enter: 执行单元格代码,新建并移动到下一个单元格

    这几个快捷键都是非常常用的。

      F.历史输入和输出变量

    与标准 Shell 类似,IPython 中也可以通过 _ 和 _ _ 访问上一次和上上一次的输出。

    当你写的单元格多了,肯定会注意到,IPython 中每一次的输入输出都有序号。你可以通过一下方法访问这些输入和输出:

    • _:访问上一次输出
    • __:访问上上一次输出
    • _X:访问历史 X 行输出
    • _iX:访问历史 X 行输入

    其中小写字母 “i”,代表 “in”。

    三、外部功能

    上面讲的是jupyter 的一些使用方法和技巧,其实它还有很多强大的外部功能的,下面给大家介绍一下。

      A.魔术命令

      在 IPython 的会话环境中,所有文件都可以通过 %run 命令来当做脚本执行,并且文件中的变量也会随即导入当前命名空间。

    即,对于一个模块文件,你对他使用 %run 命令的效果和 from module import * 相同,这种以 % 开头的命令在 IPython 中被称为魔术命令,用于加强 shell 的功能。

    常用的魔术命令有: 

    %quickref 显示 IPython 快速参考
    %magic 显示所有魔术命令的详细文档
    %debug 从最新的异常跟踪的底部进入交互式调试器
    %pdb 在异常发生后自动进入调试器
    %reset 删除 interactive 命名空间中的全部变量
    %run script.py 执行 script.py
    %prun statement 通过 cProfile 执行对 statement 的逐行性能分析
    %time statement 测试 statement 的执行时间
    %timeit statement 多次测试 statement 的执行时间并计算平均值
    %who、%who_ls、%whos 显示 interactive 命名空间中定义的变量,信息级别/冗余度可变
    %xdel variable 删除 variable,并尝试清除其在 IPython 中的对象上的一切引用
    !cmd 在系统 shell 执行 cmd
    output=!cmd args 执行cmd 并赋值
    %bookmark 使用 IPython 的目录书签系统
    %cd direcrory 切换工作目录
    %pwd 返回当前工作目录(字符串形式)
    %env 返回当前系统变量(以字典形式)

    对魔术命令不熟悉的话可以通过 %magic 查看详细文档;对某一个命令不熟悉的话,可以通过 %cmd? 内省机制查看特定文档

      B.添加插件

      1)侧边栏目录导航

      当文章内容非常长的时候,前后找内容,很麻烦,不如加一个sidebar,方便导航方法:https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/toc2

      2)隐藏代码按钮

    有时候,希望代码可以隐藏,这样子文档看起来,就会干净一些 

    点击按钮,就可以隐藏所有的代码,具体做法:http://stackoverflow.com/questions/27934885/how-to-hide-code-from-cells-in-ipython-notebook-visualized-with-nbviewer当然,还有更多的extention可见https://github.com/ipython-contrib/IPython-notebook-extensions/

    参考【https://www.douban.com/review/7890354/

      C.运行python文件

    利用jupyter的cell是可以运行python文件的。

    方法一:

    1. %run file.py  

    方法二:在unitx command前面加入一个感叹号“!” ,如:

    1. !python myfile.py  

      D.导入外部代码

    比如有一个test.py文件,需要将其载入到jupyter的一个cell中

    在需要导入该段代码的cell中输入

    1. %load test.py #test.py是当前路径下的一个python文件  

    shift + enter运行后,%load test.py被自动加入了注释符号#,test.py中的所有代码都被load到了当前的cell中

    或者从从网络load代码到jupyter

    在cell中输入%load http://.....,然后运行该cell,就会将load后面所对应地址的代码load到当前的cell中; 

     

    四、其他技巧

      1)更改Jupyter notebook的工作空间(主目录)

    Jupyter的工作空间在其配置文件ipython_notebook_config.py中。

    ipython_notebook_config.py文件在~/.jupyter/下

    如果找不到那就在终端输入:

    1. jupyter notebook --generate-config   

    然后再

    1. gedit ~/.jupyter/jupyter_notebook_config.py  

    Ctrl + F 找到下面这句按下面的格式,输入你想要的目录路径即可

    1. # The directory to use for notebooks.这决定了jupyter启动目录  
    2. c.NotebookApp.notebook_dir = u'/path/to/your/notebooks'  

      2)自定义快捷键

    这个就直接参考官方文档吧:http://nbviewer.jupyter.org/github/ipython/ipython/blob/3.x/examples/Notebook/Custom%20Keyboard%20Shortcuts.ipynb

  • 相关阅读:
    伐木工和森林的故事(一)
    EclipsePDT PHP的开发环境配置
    奇怪的using
    [团队开发]SERVER2008下无法安装VS2008 SP1 和 TFS2008 SP1补丁
    写在七夕
    一点点的松懈,就可以毁掉自己!
    2008,到今天我不后悔
    细节决定成败,注意的事情需要做到,而不是听完了当耳边风
    正视差距,展望2008!
    ZendStudio5.5调式环境配置
  • 原文地址:https://www.cnblogs.com/carle-09/p/8977658.html
Copyright © 2011-2022 走看看