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的subprocess模块总结
Nov 07 Python
Python的time模块中的常用方法整理
Jun 18 Python
Python解析json文件相关知识学习
Mar 01 Python
python生成器表达式和列表解析
Mar 10 Python
Python数据类型详解(三)元祖:tuple
May 08 Python
Python的Django中将文件上传至七牛云存储的代码分享
Jun 03 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python最小生成树kruskal与prim算法详解
Jan 17 Python
YUV转为jpg图像的实现
Dec 09 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 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
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP 实用代码收集
2010/01/22 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
使用python 获取进程pid号的方法
2014/03/10 Python
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
技术人员面试提纲
2013/11/28 职场文书
销售活动策划方案
2014/08/26 职场文书
电子银行业务授权委托书
2014/10/10 职场文书