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 将当前块与下一块合并
数字键16 将当前块第一行变为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

对自己定义的函数添加`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)

五. 输入输出历史

输入和输出分别保存在InOut两个对象中,In对象是一个列表, Out对象是一个字典

下划线和以前的输出

  • 单下划线_, 双下划线__, 三下划线___分别表示倒数第一, 第二, 第三个历史输出

  • Out[x]的下划线简写形式是_x

六. python和shell的相互传值

  • !作为符号前缀可以在Ipython中执行任何命令行命令

例如

1
!pwd
  • 利用{}可以将python中的变量传至shell中

例如

1
2
3
4
In [1]: message = "123"

In [2]: !echo {message}
123

参考


python数据科学(一) Jupyter NoteBook
https://blog.roccoshi.top/posts/24986/
作者
RoccoShi
发布于
2021年1月13日
许可协议