jupyter notebook快速入门及使用详解


Posted in Python onNovember 13, 2020

一、jupyter notebook是什么

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

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

此架构的一个优点是,内核无需运行 Python。由于 notebook 和内核分开,因此可以在两者之间发送任何语言的代码。例如,早期的两个非 Python 内核分别是 R 语言和 Julia 语言。使用 R 内核时,用 R 编写的代码将发送给执行该代码的 R 内核,这与在 Python 内核上运行 Python 代码完全一样。IPython notebook 已被改名,因为 notebook 变得与编程语言无关。新的名称 Jupyter 由 Julia、Python 和 R 组合而成。如果有兴趣,不妨看看可用内核的列表。

另一个优点是,你可以在任何地方运行 notebook 服务器,并且可通过互联网访问服务器。通常,你会在存储所有数据和 notebook 文件的自有计算机上运行服务器。但是,你也可以在远程计算机或云实例(如 Amazon 的 EC2)上设置服务器。之后,你就可以在世界上任何地方通过浏览器访问 notebook。

二、jupyter notebook的安装和配置

 1. 安装

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

pip install jupyter

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

jupyter notebook

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

jupyter notebook快速入门及使用详解

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

2、配置 

jupyter notebook --generate-config

打开“C:\Users\Administrator\.jupyter”文件夹,可以看到里面有个配置文件。 

jupyter notebook快速入门及使用详解

修改jupyter_notebook_config.py配置文件

打开这个配置文件,找到“c.NotebookApp.notebook_dir=……”,把路径改成自己的工作目录。

jupyter notebook快速入门及使用详解

配置文件修改完成后, 以后在 jupyter notebook 中写的代码等都会保存在自己创建的目录中。 

 jupyter notebook的自定义启动(变了)

配置文件修改成后,就可以启动 jupyter notebook 了,命令行窗口中输入 jupyter notebook,

默认浏览器就会打开一个页面 

 jupyter notebook的启动

命令行窗口输入: jupyter notebook

jupyter notebook快速入门及使用详解

三、使用

1、打开一个新文档

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

jupyter notebook快速入门及使用详解

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

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

2、python编辑器介绍

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

jupyter notebook快速入门及使用详解

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

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

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

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

(1).修改文档名称

jupyter notebook快速入门及使用详解

方法一:点上图的Untitled

方法二:点File,再点rename

(2).导出文档

步骤:点File,再点Download as

jupyter notebook快速入门及使用详解

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

(3).保存

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

(4).单元格格式

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

jupyter notebook快速入门及使用详解

这里介绍一下

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

下面举例说明一下

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

jupyter notebook快速入门及使用详解

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

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

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

jupyter notebook快速入门及使用详解

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

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

(5).快捷键

常用的快捷键是:

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

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

(6).历史输入和输出变量

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

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

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

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

四、外部功能

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

(1).魔术命令

在 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? 内省机制查看特定文档

(2).添加插件

a)侧边栏目录导航

jupyter notebook快速入门及使用详解

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

b)隐藏代码按钮

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

jupyter notebook快速入门及使用详解

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

(3).运行python文件

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

方法一:

%run file.py

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

!python myfile.py

(4).导入外部代码

比如有一个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中; 

(5).自定义快捷键

参考官方文档:

http://nbviewer.jupyter.org/github/ipython/ipython/blob/3.x/examples/Notebook/Custom%20Keyboard%20Shortcuts.ipynb

参考

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

【2】jupyter使用小结

【3】Jupyter Notebook 快速入门(上)

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

【5】https://blog.csdn.net/lee_j_r/article/details/52791228

【6】http://www.cnblogs.com/zlslch/p/6984403.html

Python 相关文章推荐
python xlsxwriter库生成图表的应用示例
Mar 16 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
python3.7.0的安装步骤
Aug 27 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python爬取酷狗音乐排行榜
Feb 20 Python
Python 控制终端输出文字的实例
Jul 12 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
python系列 文件操作的代码
Oct 06 Python
flask框架自定义url转换器操作详解
Jan 25 Python
python 将Excel转Word的示例
Mar 02 Python
python实现MD5进行文件去重的示例代码
Jul 09 Python
Python中pass的作用与使用教程
Nov 13 #Python
python入门教程之基本算术运算符
Nov 13 #Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 #Python
Python和Bash结合在一起的方法
Nov 13 #Python
python小技巧——将变量保存在本地及读取
Nov 13 #Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 #Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 #Python
You might like
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
分享PHP header函数使用教程
2013/09/05 PHP
PHP查询网站的PR值
2013/10/30 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
layui表格数据重载
2019/07/27 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
python requests post多层字典的方法
2018/12/27 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
python 如何将office文件转换为PDF
2020/09/22 Python
python中字符串的编码与解码详析
2020/12/03 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
公司前台辞职报告
2014/01/19 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
大学开学感言
2015/08/01 职场文书
寒假生活随笔
2015/08/15 职场文书
总经理聘用协议书
2015/09/21 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python