jupyter notebook的一些小技巧

这个文档旨在说明jupyter notebook的一些使用方法

参考链接:

  1. https://www.jianshu.com/p/f21595816abf

一些基础说明:

%代表magic方法
!代表shell用法

这两个方法可以为jupyter notebook的使用提供方便

行魔法命令和单元魔法命令的使用形式也是不同的,行魔法命令是以%开头,而单元魔法命令则是%%开头。

代码自动补缺 及 相关函数的用法参考

在最开始就输入下面的语句
之后使用tab键就可以

详细使用方法

(p.s. 个人认为非常实用的几个小操作,不用反复百度百科)

  • 只输入变量或者函数的前几个字母,按下tab可以自动补全

  • 已经输入函数,连续按下shift+tab可以查询函数的具体用法,(一直可以按4次)

  • 查看相关函数的用法可用 ?numpy.random方法

%config IPCompleter.greedy=True
import numpy as np
?np.random

直接运行本地Python文件

使用场景

不想在Jupyter Notebook的单元格中加载本地Python文件,想要直接运行。

代码示意:

%run xxx.py Python文件的绝对路径,并且可以将相应文件里的变量保存在jupyter notebook中
%load xxx.py Python文件的绝对路径,可以将python的代码加载到当前的cell

运行相应的文件,其结果不保存在当前的cell里
!python3 Python文件的绝对路径
!python Python文件的绝对路径
!python Python文件的绝对路径

注意事项

Python文件的后缀为“.py”。
“%run”后跟的是Python文件的绝对路径。
“!python3”用于执行Python
3.x版本的代码。
“!python”用于执行Python
2.x版本的代码。
“!python3”和“!python”属于 !shell命令 语法的使用,即在Jupyter Notebook中执行shell命令的语法。
输入命令后,可以按 control return 来执行命令,执行过程中将不显示本地Python文件的内容,直接显示运行结果。

!python E:\1spyder3document\test3.py
%whos
1
2
3
4
Variable   Type      Data/Info
------------------------------
np         module    <module 'numpy' from 'C:\<...>ges\\numpy\\__init__.py'>
%run E:\1spyder3document\test3.py
%whos
1
2
3
4
Variable        Type       Data/Info
------------------------------------
i               int        4
np              module     <module 'numpy' from 'C:\<...>ges\\numpy\\__init__.py'>
x_lane_0_vehs   ndarray    5: 5 elems, type `float64`, 40 bytes
x_lane_1_vehs   ndarray    5: 5 elems, type `float64`, 40 bytes
x_lane_2_vehs   ndarray    5: 5 elems, type `float64`, 40 bytes

%load E:\1spyder3document\test3.py

#结果如下个格子

# %load E:\1spyder3document\test3
"""
Created on Tue Jun 25 21:45:35 2019

@author: chwei
"""
import numpy as np
np.random.seed(2)
i=0
while True:
    i=i+1
    x_lane_0_vehs = np.sort(np.append( np.random.uniform(0, 100, [5 - 1]), 500  ))
    x_lane_1_vehs = np.sort( np.random.uniform(0, 100, [5 ]))
    x_lane_2_vehs = np.sort( np.random.uniform(0, 100, [5 ]))
    
    print(i)
    if x_lane_2_vehs[0] <= 5:
        
        break


1
2
3
4

在Jupyter Notebook中获取当前位置

① 使用场景
想要在Jupyter Notebook中获取当前所在位置的绝对路径。

② 方法

%pwd
!pwd

③ 注意
获取的位置是当前Jupyter Notebook中创建的笔记本所在位置,且该位置为绝对路径。
“!pwd”属于 !shell命令 语法的使用,即在Jupyter
Notebook中执行shell命令的语法。

%pwd

'E:\\jupyter_learning'
  1. 在Jupyter Notebook使用shell命令
    ① 方法一——在笔记本的单元格中
    ⑴ 语法
!shell命令

在Jupyter Notebook中的笔记本单元格中用英文感叹号“!”后接shell命令即可执行shell命令。

!dir -a
 驱动器 E 中的卷是 MyPassportSabrina
 卷的序列号是 0E92-8488

 E:\1PIL_learning 的目录



找不到文件

获取变量名 及 变量的值

(该方法适合于把jupyter notebook有效扩展为类似于spyder 所见即所得的方案)

%who 显示所有变量的名称
%whos 查看所有变量的名称和值
%reset 清除所有的变量
%who_ls
%who
%who list
%whos
i	 np	 x_lane_0_vehs	 x_lane_1_vehs	 x_lane_2_vehs	 
No variables match your requested type.
Variable        Type       Data/Info
------------------------------------
i               int        4
np              module     <module 'numpy' from 'C:\<...>ges\\numpy\\__init__.py'>
x_lane_0_vehs   ndarray    5: 5 elems, type `float64`, 40 bytes
x_lane_1_vehs   ndarray    5: 5 elems, type `float64`, 40 bytes
x_lane_2_vehs   ndarray    5: 5 elems, type `float64`, 40 bytes

测试代码运行的时间

%time 测试代码运行的时间 行
%%time  单元
%%time
for i in range(10):
    print(i)
0
1
2
3
4
5
6
7
8
9
Wall time: 1.99 ms

待探索的功能

使用Jupyter notebook的插件

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

1.Table of Contents
这个扩展一般用于整个文件的目录很多的时候。首先在Nbextensions选项卡中勾选该插件,然后在工具条中就可以看到该扩展按钮。如果我们在notebook中使用了MarkDown设置了我们的标题,点击该扩展,就会在左侧生成目录,点击左侧的齿轮,可以在最顶部添加一个cell专门用来显示目录。点击左侧和顶部的链接都可以快速跳转到相应的位置。还可以进行目录的折叠。注意到此时菜单栏上也多了一个“Navigate”标签,同样显示了目录的情况。

  1. Variable inspector

该插件可以帮助我们查看当前notebook中所有的变量的名称,类型,大小和值。省去了df.shape,type()等语句的执行,也代替了前文提到的魔法函数“%whos”的执行,读者可以自行尝试一下。

  1. Code folding

顾名思义,该插件可以对代码进行一定的折叠,例如遇到class,def等关键字,而且主体代码又很长时,折叠代码会方便阅读,这一点也让jupyter notebook更像一个IDE。

5.Execute time

该插件可以显示每一个cell中代码的执行时间。

除此之外还有一些其他常见的插件扩展,例如Notify,Collapsible headings等,读者可以自行探索查看,并配置使用。

?str.replace
%pdb
Automatic pdb calling has been turned ON
发布了36 篇原创文章 · 获赞 0 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_38102912/article/details/101288872
今日推荐