Jupyter 安装与使用

Stella981
• 阅读 695

看视频的时候发现一个非常有用的python交互式编辑器,非常容易上手而且非常有用和实在,本博文是对学习jupyter notebook的一个汇总和记录,与大家一起分享!下面的内容是针对ubuntu 系统的,当然,jupyter notebook在windows也是支持的。

一、jupyter notebook是什么

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

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

二、jupyter notebook的安装和打开

安装非常简单,只需要在终端输入:

pip install jupyter        #针对Python2

pip3 install jupyter     #针对Python3

打开jupyter notebook 也只需要在终端输入:

jupyter notebook  

pip和pip3的区别

1、其实这两个命令效果是一样的,没有区别:

(1)比如安装库numpy,pip3  install  numpy或者pip  install  numpy:只是当一台电脑同时有多个版本的Python的时候,用pip3就可以自动区分用Python3来安装库。是为了避免和Python2发生冲突的。

(2)如果你的电脑只安装了Python3,那么不管用pip还是pip3都一样的。

2、安装了python3之后,会有pip3

(1)使用pip install XXX :

新安装的库会放在这个目录下面:python2.7/site-packages;

(2)使用pip3 install XXX :

新安装的库会放在这个目录下面:python3.6/site-packages;

(3)如果使用python3执行程序,那么就不能import python2.7/site-packages中的库。

运行上面的命令之后,你将看到类似下面这样的输出:

Jupyter 安装与使用

如上图,它打开了一个端口,并且会在你的浏览器中打开这个页面,主目录是图中的那个directory(可能第一次打开没有这个目录)。

Jupyter 安装与使用

三、使用

1、打开一个新文档

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

Jupyter 安装与使用

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

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

2、python编辑器介绍

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

Jupyter 安装与使用

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

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

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

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

A.修改文档名称

方法一:点上图的Untitled

方法二:点File,再点rename

B.导出文档

步骤:点File,再点Download as

Jupyter 安装与使用

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

C.保存

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

D.单元格格式

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

Jupyter 安装与使用

这里介绍一下

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

下面举例说明一下

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

Jupyter 安装与使用

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

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

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

Jupyter 安装与使用

我一共输入了三级标题,点其中一个,你会发现它的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)侧边栏目录导航

Jupyter 安装与使用

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

2)隐藏代码按钮

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

Jupyter 安装与使用

点击按钮,就可以隐藏所有的代码,具体做法: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文件的。

方法一:

%run file.py  

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

!python myfile.py  

D.导入外部代码

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

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

%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/下

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

jupyter notebook --generate-config   

然后再

gedit ~/.jupyter/jupyter_notebook_config.py  

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

The directory to use for notebooks.这决定了jupyter启动目录

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  

六、总结

总的来说,Jupyter notebook 是一款非常优秀的交互式编辑平台,提供了分享,演示,编辑等功能.作为学习的记录者,方便你随时捡起学习的进度,增量式地前进。

希望这篇博文能对刚接触jupyter 的朋友有所帮助!

七、参考

【1】官网安装:https://jupyter.readthedocs.io/en/latest/install.html

【2】jupyter使用小结
【3】Jupyter Notebook 快速入门(上)

【4】jupyter notebook 各种用法记录(陆续更新)

参考下面文章修改,下面文章为Python2的

[5】https://blog.csdn.net/gubenpeiyuan/article/details/79252402

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
2年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这