python数据科学(一) Jupyter NoteBook
本文最后更新于:2023年4月15日 晚上
Python数据科学(一) Jupyter NoteBook初见
JupyterNoteBook是Ipython shell基于浏览器的图形界面
ipython
是一个python
的交互式shell
,比默认的python shell
好用得多,支持变量自动补全,自动缩进,支持bash shell
命令,内置了许多很有用的功能和函数。学习ipython
将会让我们以一种更高的效率来使用python
。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。
一. 启动Jupyter Notebook
在命令行中输入jupyter notebook
, 启动一个本地的web服务器, 可以在浏览器中看到页面内容
修改工作目录
可以看到目前jupyter的默认主目录为C盘, 我希望能放在E盘里的"E:\projects\Jupyter"
目录下
修改流程如下:
- 启动anaconda prompt, 输入
jupyter notebook --generate-config
- 打开该目录, 查找
notebook_dir
关键字, 修改为自己的工作目录
- 重新启动jupyter notebook即可
二. Jupyter的常用快捷键以及工作方式
jupyter分为两种模式, 一种是命令模式, 一种是编辑模式[1]
编辑模式 (绿色)和命令模式 (蓝色)的切换
编辑模式 -> 命令模式: Esc
命令模式 -> 编辑模式: Enter
命令模式下
按键 | 功能 | 按键 | 功能 |
---|---|---|---|
Enter |
进入当前块的编辑模式 | X |
剪切选中的代码块 |
Shift +Enter |
运行当前块并选中下一块 | C |
复制选中的代码块 |
Ctrl +Enter |
运行当前块 | Shift +V |
在当前块上方粘贴 |
Alt +Enter |
运行当前块并在下方插入新块 | V |
在当前块下方粘贴 |
Y |
切换到代码状态 | Z |
撤销删除操作 |
M |
切换到MarkDown状态 | D ,D |
删除选中的代码块 |
R |
切换到Raw NBConvert | Shift +M |
将当前块与下一块合并 |
数字键1 到6 |
将当前块第一行变为MarkDown的n级标题 | S / Ctrl +S |
保存并设置检查点 |
↑ / K |
选择上一个代码块 | L |
显示/隐藏当前块的代码行号 |
↓ / J |
选择下一个代码块 | O |
显示/隐藏当前块的输出内容 |
A |
在当前块上方插入新代码块 | Shift +O |
显示/隐藏当前块的输出内容的滚动条 |
B |
在当前块下方插入新代码块 | Esc / Q |
关闭弹窗 |
H |
展示快捷键帮助 | I ,I |
打断kernal运行 |
Space |
滚动向下 | O ,O |
重启kernal |
Shift +Space |
滚动向上 | Shift +(↑ /↓ ) |
选中多个代码块 |
编辑模式下
按键 | 功能 | 按键 | 功能 |
---|---|---|---|
Tab |
代码补全/缩进 | Ctrl +→ |
光标右移一个词 |
Shift +Tab |
工具提示/反缩进 | Ctrl +Backspace |
删除前一个词 |
Ctrl +[ |
缩进 | Ctrl +Delete |
删除后一个词 |
Ctrl +] |
反缩进 | Ctrl +M / Esc |
进入命令模式 |
Ctrl +A |
全选 | Ctrl +Shift +P |
打开命令选择板 |
Ctrl +Z |
撤销 | Shift +Enter |
运行当前块并选中下一块 |
Ctrl +Y / Ctrl +Shift +Z |
重复 | Ctrl +Enter |
运行当前块 |
Ctrl +Home |
移动光标到块首 | Alt +Enter |
运行当前块并在下方插入新块 |
Ctrl +End |
移动光标到块尾 | Ctrl +Shift +- |
按光标位置分割当前块 |
Ctrl +← |
光标左移一个词 | Ctrl +S |
保存并设置检查点 |
三. Ipython的帮助和文档
通过?
查看帮助文档, 自定义帮助文档
每一个Python对象都要有一个字符串的引用(docstring), 这个字符串包含对象的简要介绍和使用方法, python内置的help()
函数可以获取这些信息并且能打印输出结果, 比如查看内置的print文档:
也可以对自己定义的函数添加docstring
, 即在函数定义的下方加入“"" ""”
, 里面填入docstring
通过??
获取源代码
通过TAB
键自动补全, 通配符匹配
1 | 对象内容的自动补全
如果有多个属性/方法, 则下面出现提示, 如果只有一个属性/方法, 则tab键将自动补全
2 | 导入时的TAB自动补全
import <TAB>
3 | 通配符*
匹配
比如查找以Warning结尾的所有对象:
语法: *Warning?
查找字符串包含find的方法:
语法:str.*find*?
:
四. 魔法函数
利用%lsmagic
可以列出所有魔法函数, 魔法函数设计用于简洁解决标准数据分析中的各种常见问题
其中双百分号%%
为多行魔法函数
单百分号%
为行内魔法函数
例如: %%timeit
计算代码的执行时间
用于内存分析和时间分析的魔法函数
用于时间分析: %%timeit
(根据长度不同执行次数不同求平均)和%time
(执行一次, end-start)
用于内存分析: %memit
和%mprun
(需要安装memory_profiler
并导入%load_ext memory_profiler
)
五. 输入输出历史
输入和输出分别保存在In
和Out
两个对象中,In对象是一个列表, Out对象是一个字典
下划线和以前的输出
单下划线
_
, 双下划线__
, 三下划线___
分别表示倒数第一, 第二, 第三个历史输出Out[x]的下划线简写形式是
_x
六. python和shell的相互传值
- 将
!
作为符号前缀可以在Ipython中执行任何命令行命令
例如
1 |
|
- 利用
{}
可以将python中的变量传至shell中
例如
1 |
|