更好的使用Jupyter notebook
Running a notebook server
步骤:
- 在阿里云后台,打开相应的端口,比如我们这里打开8055端口
- 安装完jupyter后,输入
$ jupyter notebook --generate-config产生配置文件。 - 进入ipython,配置密码,记下密码(用于登录),并复制hash码
sha1:...(用于配置):
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9f*****4254b2e042ea597d771089e11aed'
- 编辑jupyter配置文件:
$ vi .jupyter/jupyter_notebook_config.py
添加:
c.NotebookApp.ip='*'
c.NotebookApp.notebook_dir = u''
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'sha1:67c9e60bb8b6:9f*****4254b2e042ea597d771089e11aed'
c.NotebookApp.port =8055
保存退出
5. 在防火墙开放相应的端口
$ sudo ufw status #查看端口开放状态
$ sudo ufw allow 8055
- 运行jupyter
$ nohup jupyter notebook >> jupyter.out 2>&1 &
即可通过浏览器访问。
http://yourhost:8055,
密码是你在ipython里设置的密码。
快捷键速查
命令模式 (按键 Esc 开启)
Enter : 转入编辑模式
Shift-Enter : 运行本单元,选中下个单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在其下插入新单元
Y : 单元转入代码状态
M :单元转入markdown状态
R : 单元转入raw状态
1 : 设定 1 级标题
2 : 设定 2 级标题
3 : 设定 3 级标题
4 : 设定 4 级标题
5 : 设定 5 级标题
6 : 设定 6 级标题
Up : 选中上方单元
K : 选中上方单元
Down : 选中下方单元
J : 选中下方单元
Shift-K : 扩大选中上方单元
Shift-J : 扩大选中下方单元
A : 在上方插入新单元
B : 在下方插入新单元
X : 剪切选中的单元
C : 复制选中的单元
Shift-V : 粘贴到上方单元
V : 粘贴到下方单元
Z : 恢复删除的最后一个单元
D,D : 删除选中的单元
Shift-M : 合并选中的单元
Ctrl-S : 文件存盘
S : 文件存盘
L : 转换行号
O : 转换输出
Shift-O : 转换输出滚动
Esc : 关闭页面
Q : 关闭页面
H : 显示快捷键帮助
I,I : 中断Notebook内核
0,0 : 重启Notebook内核
Shift : 忽略
Shift-Space : 向上滚动
Space : 向下滚动
编辑模式 ( Enter 键启动)
Tab : 代码补全或缩进
Shift-Tab : 提示
Ctrl-] : 缩进
Ctrl-[ : 解除缩进
Ctrl-A : 全选
Ctrl-Z : 复原
Ctrl-Shift-Z : 再做
Ctrl-Y : 再做
Ctrl-Home : 跳到单元开头
Ctrl-Up : 跳到单元开头
Ctrl-End : 跳到单元末尾
Ctrl-Down : 跳到单元末尾
Ctrl-Left : 跳到左边一个字首
Ctrl-Right : 跳到右边一个字首
Ctrl-Backspace : 删除前面一个字
Ctrl-Delete : 删除后面一个字
Esc : 进入命令模式
Ctrl-M : 进入命令模式
Shift-Enter : 运行本单元,选中下一单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在下面插入一单元
Ctrl-Shift-- : 分割单元
Ctrl-S : 文件存盘
Shift : 忽略
Up : 光标上移或转入上一单元
Down :光标下移或转入下一单元
魔术命令magics
魔术命令是ipython中的特殊命令,常以%作为前缀符号开头,用于方便我们的日常使用。
%:行魔法函数,只对本行代码生效。%%:Cell魔法函数,在整个Cell中生效,必须放于Cell首行。
下面我们来介绍一下常用的magics。
(完整的magics命令:大家可以打开jupyter后可以在cell中输入%quickref显示快速参考卡,%lsmagic:列出所有的魔法函数,以及%magic命令可以显示魔术命令的详细文档)
%matplotlib inline: 这个命令可能是大家最常用的一个魔术命令。这个命令用于将matplotlib的输出图嵌入到notebook中,如果不加这条命令,在用matplotlib绘图时可能会出现不显示的情况。%time, %timeit和 %%time, %%timeit:可以用来记录程序运行的时间,以便于后期对代码逻辑进行优化。
%time可以输出单个语句的运行时间,而%timeit会自动多次执行语句以产生一个更具代表性的平均执行时间, %%time可以输出整个cell中语句的执行时间。
import time
import numpy as np
def time_test():
arr = np.random.rand(5,6)
for i in range(10000):
arr += (-1)**i
return arr
%time time_test()
# OUTPUT:
"""
CPU times: user 26 ms, sys: 2.16 ms, total: 28.2 ms
Wall time: 27 ms
array([[0.9002168 , 0.3041222 , 0.44203939, 0.17079689, 0.94881637,
0.3497185 ],
[0.3253366 , 0.94237406, 0.94394366, 0.45562757, 0.13917467,
0.34043364],
[0.17794278, 0.51184239, 0.30619056, 0.17429579, 0.92800944,
0.4405044 ],
[0.30972439, 0.02095686, 0.31532945, 0.65237745, 0.03647221,
0.54834167],
[0.9697625 , 0.52372474, 0.12283473, 0.46851531, 0.09019544,
0.41063005]])
"""
%timeit time_test()
# OUTPUT:
"""
17.1 ms ± 187 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
"""
%%time
import time
import numpy as np
def time_test():
arr = np.random.rand(5,6)
for i in range(10000):
arr += (-1)**i
return arr
time_test()
# OUTPUT:
"""
CPU times: user 24.5 ms, sys: 914 µs, total: 25.4 ms
Wall time: 25 ms
"""
%xdel:删除一个变量,清除相关的引用。%prun, %lprun, %memit, %mprun:程序性能分析。%prun: Run code with the profiler%lprun: Run code with the line-by-line profiler%memit: Measure the memory use of a single statement%mprun: Run code with the line-by-line memory profiler`
注:后面三个magics命令不是jupyter自带的,需要先进行安装和导入才可以使用。
$ pip install line_profiler
%load_ext line_profiler
$ pip install memory_profiler
%load_ext memory_profiler
%load_ext:导入ipython的拓展工具。
Load an IPython extension by its module name.
%run:运行python脚本:
%run script.py
%system date, !date 和 !!date: 都可用于在cell中执行shell命令。%who_ls, %who, %whos:输出环境中的变量列表。%who_ls function仅仅输入函数类型的变量列表。
%whos
#OUTPUT
"""
Variable Type Data/Info
---------------------------------
np module <module 'numpy' from '/Us<...>kages/numpy/__init__.py'>
time module <module 'time' (built-in)>
time_test function <function time_test at 0x10f433620>
"""
-
%debug, %pdb:可用于调试debug -
%env:列出全部环境变量 -
%reset:清除全部变量 -
%%: Cell magics:在每个cell的开头使用的以%%开头的魔法命令,可以在一个notebook中用不同的内核运行代码,例如:
%%bash
%%markdown
%%time
%%HTML
%%python2
%%python3
%%latex
%%javascript
%%ruby
%%perl
扩展功能
安装方法:
!pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master
!pip install jupyter_nbextensions_configurator
!jupyter contrib nbextension install --user
!jupyter nbextensions_configurator enable --user
安装完成后打开jupyter可以看到多了Nbextensions这个选项卡:
安装了之后便多了很多便捷的小工具可以选择,可以直接在上图显示的Nbextensions这个选项卡中直接打开相应的功能。下面介绍一些常见的:
- Hinterland:代码输入提示工具,非常好用。
- Autopep8:一键美化代码。
- Table of Contents:生成目录。
- Split Cells Notebook:拆分单元格。
- Codefolding:代码折叠。
- table_beautifier:美化表格。
更多的扩展功能大家可以自行探索。
其他
?,??:可以在jupyter中实现help的功能。
np.random.rand??
# OUTPUT:
"""
Docstring:
rand(d0, d1, ..., dn)
Random values in a given shape.
Create an array of the given shape and populate it with
random samples from a uniform distribution
over ``[0, 1)``.
Parameters
----------
d0, d1, ..., dn : int, optional
The dimensions of the returned array, should all be positive.
If no argument is given a single Python float is returned.
Returns
-------
out : ndarray, shape ``(d0, d1, ..., dn)``
Random values.
See Also
--------
random
Notes
-----
This is a convenience function. If you want an interface that
takes a shape-tuple as the first argument, refer to
np.random.random_sample .
Examples
--------
>>> np.random.rand(3,2)
array([[ 0.14022471, 0.96360618], #random
[ 0.37601032, 0.25528411], #random
[ 0.49313049, 0.94909878]]) #random
Type: builtin_function_or_method
"""
- 将notebook转化为PPT展示:
https://github.com/damianavila/RISE
Reference
Jupyter (IPython) notebooks features
28 Jupyter Notebook tips, tricks, and shortcuts
Bringing the best out of Jupyter Notebooks for Data Science
Built-in magic commands
智能推荐
如何使用Jupyter notebook
Notebook 已迅速成为处理数据的必备工具。其已知用途包括数据清理和探索、可视化、机器学习和大数据分析。GitHub 上面也会自动提供 notebook。借助此出色的功能,你可以轻松共享工作。http://nbviewer.jupyter.org/ 也会提供 GitHub 代码库中的 notebook 或存储在其他地方的 notebook。 Notebook 运行的核心是 notebook 服...
便捷使用jupyter notebook
1. jupyter notebook 安装 1.1 安装 jupyter notebook 1.2 安装常见问题 1.2.1 “jupyter command not found” 安装完成后再命令行输入jupyter notebook即可开始使用,mac下可能会显示jupyter command not found,这是由于pip安装jupyter完成后并没有将其加入到...
jupyter notebook使用技巧
1、代码自动补全 (1)安装库 (2)执行 (3)配置 进入jupyter notebook; 在Nbextensions中勾选Hinterland和Table of Contents (4)按Tab使用自动补全 2、简单方法(函数)功能提示 (1)编写函数,括号留白 (2)按住Shift双击Tab 3、魔术命令 (1)%lsmagic查询可用魔术命令 (2)%timeit查询执行时间 4、远程访...
jupyter notebook使用技巧
https://www.zhihu.com/tardis/sogou/art/42468945 1. 快捷键 在jupyter notebook菜单栏有Help按钮,可以查看jupyter的快捷键 2. 将多个变量输出 一般jupyter notebook默认只打印最后一个变量的结果。比如 通过设置InteractiveShell.astnodeinteractivity参数为all,就可以让所有...
jupyter notebook使用大全
使用python的人不可能不会接触jupyter notebook,因为它太实用了,尤其是边写代码边调试的时候。 1. 安装以及打开 安装完成后,在命令行下运行: 便会自动从浏览器打开。 2. 设置 2.1 设置主目录 在命令行输入以下命令生成配置文件: 打开配置文件,找到c.NotebookApp.notebook_dir,去掉注释,并添加自己的启动目录 2.2 修改主题 主题安装命令: 使用 ...
猜你喜欢
Jupyter Notebook使用
不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了。哎呀,这都 8102 年了,除了又大又笨重的 IDE,难道就没有什么简单而直观的办法,让我们这些新手能管理和运行代码吗? 当然有啊,还是免费的咧! 这款神器就叫&...
Jupyter Notebook 使用简介
简介 Jupyter 是一个基于Web浏览器的交互编程笔记本环境, 可以生成同时包含可以运行的代码,文档, 图表, 数学公式等的文档, 易于交流分享. 安装 推荐的安装方式是安装 Anaconda. 安装完 Anaconda 后, Jupyter Notebook 在默认环境上已经安装好了. 这里有一点值得注意, 若你又创建了其他环境, 例如使用 conda create -n tensorflo...
冒泡排序,及改进方式,性能优化400%>>>附图解加源码
首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...
css3常用选择器
先介绍一下基本选择器,如下几种 *:通配符。选择页面的所有元素 E:元素选择器。对页面的一些元素进行选择,如p,div,li等 .class:类选择器 #id:id选择器。一个Id在一个页面中只能选择,这是和类选择器的区别 E F:后代选择器。如ul li。选中ul下的li E>F:子元素选择器。如下,可以用 h1 > strong {color:red;}使h1的子元素strong变...
python is not set from command line or npm configuration
问题 猜测原因 python版本冲突 解决方案 去官网找到最新版本python 点击下载,注意记住你下载的目录,下载好以后,打开这个目录下的文件夹,Python310, 整个文件夹复制一下 在项目里运行npm config list --json 找到python的路径 我的是 C:\\Python27\\python.exe 说明项目里用的还是py...

