Jupyter notebook,一个Python居家旅游必备工具,谁用谁知道!好,今天就来掌握好这门工具。
神器简介
通俗的说,有了这款神器,你可以瞬间创建1个在线或者离线的网站。这个WEB站点可以在1个Web页面上集成Python开发环境、代码、数据可视化、说明文档、数学方程等等。让你随时随地进行Python相关研究、学习、记笔记。当然JupyterNotebook支持运行 40 多种编程语言,所以还可以任意的切换其他语言。
神器安装
最简单的方法就是使用 Anaconda,其发行版附带了 Jupyter notebook。
在 conda 环境下安装 Jupyter notebook ,使用conda install jupyter notebook
pip安装pip install jupyter notebook。
运行神器
如果使用 Anaconda,可以在其 Navigator 图形界面中点击打开 Notebook。但是最快捷的方法还是在命令行中输入:jupyter notebook
完成之后,Jupyter Notebooks 就会在你的默认网络浏览器打开,地址是:http://localhost:8888/tree
在某些情况下,它可能不会自动打开。而是会在终端/命令行生成一个 URL,并带有令牌密钥提示。你需要将包含这个令牌密钥在内的整个 URL 都复制并粘贴到你的浏览器,然后通过New创建新的文本、文档、目录。
神器心法——快捷键
高手们都知道,快捷键可以节省很多时间。Jupyter在顶部菜单提供了一个快捷键列表:Help > Keyboard Shortcuts
每次更新Jupyter的时候,一定要看看这个列表,因为不断地有新的快捷键加进来。
另外一个方法是使用Cmd + Shift + P ( Linux 和 Windows下 Ctrl + Shift + P亦可)
调出命令面板。这个对话框可以让你通过名称来运行任何命令——当你不知道某个操作的快捷键,或者那个操作没有快捷键的时候尤其有用。这个功能与苹果电脑上的Spotlight搜索很像,一旦开始使用,你会欲罢不能。
常用快捷键Esc + F 在代码中查找、替换,忽略输出。
Esc + O 在cell和输出结果间切换。
Shift + J 或 Shift + Down 选择下一个cell。
Shift + K 或 Shift + Up 选择上一个cell。
Shift + M 合并cell.
轻松链接到文档
在Help 菜单下,你可以找到常见库的在线文档链接,包括Numpy,Pandas,Scipy和Matplotlib等。 另外,在库、方法或变量的前面打上?,即可打开相关语法的帮助文档。如:?str.replace
神器魔力命令 - %run: 运行python代码
%run 可以运行.py格式的python代码——这是众所周知的。不那么为人知晓的事实是它也可以运行其它的jupyter notebook文件,这一点很有用。 注意:使用%run 与导入一个python模块是不同的。%run haha.py
神器魔力命令 -%load:从外部脚本中插入代码
该操作用外部脚本替换当前cell。可以使用你的电脑中的一个文件作为来源,也可以使用URL。%load haha.py
神器魔力命令 - %store: 在notebook文件之间传递变量
%store 命令可以在两个notebook文件之间传递变量。
如在一个notebook里写代码如下:data = 'this is the string I want to pass to different notebook'
%store data
在另外一个notebook里写代码如下:%store -r data
print(data)
神器魔力命令 - %who: 列出所有的全局变量
不加任何参数, %who 命令可以列出所有的全局变量。加上参数 str 将只列出字符串型的全局变量。one = "for the money"
two = "for the show"
three = "to get ready now go cat go"
%who str
神器魔力命令 – 计时
有两种用于计时的jupyter magic命令: %%time 和 %timeit.当你有一些很耗时的代码,想要查清楚问题出在哪时,这两个命令非常给力。 仔细体会下我的描述哦。 %%time 会告诉你cell内代码的单次运行时间信息。 %timeit会告诉你这一行单次运行的时间。
神器魔力命令 - %%writefile 和 %pycat:导出cell内容/显示外部脚本的内容
使用%%writefile magic可以保存cell的内容到外部文件。 而%pycat功能相反,把外部文件语法高亮显示(以弹出窗方式)。%%writefile pythoncode.py
import numpy
def append_if_not_exists(arr, x):
if x not in arr:
arr.append(x)
def some_useless_slow_function():
arr = list()
for i in range(10000):
x = numpy.random.randint(0, 10000)
append_if_not_exists(arr, x)
将外部文件以语法高亮的形式显示%pycat pythoncode.py
神器魔力命令 - %prun: 告诉你程序中每个函数消耗的时间
使用%prun+函数声明会给你一个按顺序排列的表格,显示每个内部函数的耗时情况,每次调用函数的耗时情况,以及累计耗时。%prun abc()
PS补充一下
其实IPython所具有的功能,JupyterNotebook都有。