我是靠谱客的博主 听话鸭子,这篇文章主要介绍四、Jupyter notebook的进阶使用,现在分享给大家,希望可以做个参考。

Tab补全

在shell中输入表达式,按下Tab,会搜索已输入变量(对象、函数等等)的命名空间:

复制代码
1
2
3
4
5
6
In [1]: an_apple = 27 In [2]: an_example = 42 In [3]: an<Tab> an_apple and an_example any

补全任何对象的方法和属性:

复制代码
1
2
3
4
5
6
7
In [3]: b = [1, 2, 3] In [4]: b.<Tab> b.append b.count b.insert b.reverse b.clear b.extend b.pop b.sort b.copy b.index b.remove

也可以补全电脑上对应的文件信息

复制代码
1
2
3
4
In [7]: datasets/movielens/<Tab> datasets/movielens/movies.dat datasets/movielens/README datasets/movielens/ratings.dat datasets/movielens/users.dat

补全函数的关键词参数(包括等于号=):

这里写图片描述

自省

在对象(函数或实例方法,或者定义过的文档字符串)后使用问号?,可以显示对象的信息:

复制代码
1
2
3
4
5
6
7
8
9
10
In [8]: b = [1, 2, 3] In [9]: b? Type: list String Form:[1, 2, 3] Length: 3 Docstring: list() -> new empty list list(iterable) -> new list initialized from iterable's items

使用??可以显示函数的源码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
In [12]: add_numbers?? Signature: add_numbers(a, b) Source: def add_numbers(a, b): """ Add two numbers together Returns ------- the_sum : type of arguments """ return a + b File: <ipython-input-9-6a548a216e27> Type: function

使用?还可以搜索IPython的命名空间。字符与通配符结合可以匹配所有的名字。例如,我们可以获得所有包含load的顶级NumPy命名空间:

复制代码
1
2
3
4
5
6
In [13]: np.*load*? np.__loader__ np.load np.loads np.loadtxt np.pkgload

集成Matplotlib

IPython在分析计算领域能够流行的原因之一是它非常好的集成了数据可视化和其它用户界面库,比如matplotlib。不用担心以前没用过matplotlib,本书后面会详细介绍。%matplotlib魔术函数配置了IPython shell和Jupyter notebook中的matplotlib。这点很重要,其它创建的图不会出现(notebook)或获取session的控制,直到结束(shell)。

在notebookl中使用示例如下:

这里写图片描述

魔术命令

在 IPython 的会话环境中,所有文件都可以通过 %run 命令来当做脚本执行,并且文件中的变量也会随即导入当前命名空间。即,对于一个模块文件,你对他使用 %run 命令的效果和 from module import * 相同,除非这个模块文件定义了 main 函数(if name == ‘main:’),这种情况下 main 函数还会被执行。

这种以 % 开头的命令在 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? 内省机制查看特定文档。值得一提的是,IPython 中使用 del 命令无法删除所有的变量引用,因此垃圾回收机制也无法启用,所以有些时候你会需要使用 %xdel 或者 %reset。

最后

以上就是听话鸭子最近收集整理的关于四、Jupyter notebook的进阶使用的全部内容,更多相关四、Jupyter内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(91)

评论列表共有 0 条评论

立即
投稿
返回
顶部