四、Jupyter notebook的进阶使用

Tab补全

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

In [1]: an_apple = 27

In [2]: an_example = 42

In [3]: an<Tab>
an_apple    and         an_example  any

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

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

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

In [7]: datasets/movielens/<Tab>
datasets/movielens/movies.dat    datasets/movielens/README
datasets/movielens/ratings.dat   datasets/movielens/users.dat

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

这里写图片描述

自省

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

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

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

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命名空间:

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。

猜你喜欢

转载自blog.csdn.net/qq_37315403/article/details/79963577