环境搭建
Anaconda:
Anaconda(水蟒)
是一个捆绑了Python
、conda
、其他相关依赖包的一个软件。包含了 180 多个可学计算包及其依赖。Anaconda3
是集成了 Python3
的环境,Anaconda2
是集成了Python2
的环境。Anaconda
默认集成的包,是属于内置的Python
的包。并且支持绝大部分操作系统(比如:Windows、Mac、Linux 等)。
下载地址如下:https://www.anaconda.com/distribution/
如果官网下载太慢,可以在清华大学开源软件站中下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
根据自己的操作系统,下载相应的版本,因为Anaconda
内置了许多的包,所以安装过程需要耗费相当长的时间,大家在安装的时候需要耐心等待。在安装完成后,会有以下几个模块: Anaconda prompt
、 Anaconda Navigator
、Spyder
、jupyter notebook
,以下分别做一些介绍。
Anaconda prompt:
Anaconda prompt
是专门用来操作anaconda
的终端。如果你安装完Anaconda
后没有在环境变量的PATH
中添加相关的环境变量,那么以后你想在终端使用 anaconda
相关的命令,则必须要在Anaconda prompt
中完成。
Anaconda Navigator:
这个相当于是一个导航面板,上面组织了Anaconda
相关的软件。
Spyder:
一个专门开发Python
的软件,熟悉 MATLAB
的人会比较有亲切感,但在后期的学习过程中,我们将不会使用这个工具写代码,因为还有更好的可替代的工具。
Jupyter 介绍
Jupyter 项目是一个非盈利的开源项目,源于 2014 年的 ipython 项目,因为它逐渐发展为支持跨所有编程语言的交互式数据科学和科学计算
- Jupyter Notebook,原名 IPython Notbook,是 IPython 的加强网页版,一个开源 Web 应用程序
- 名字源自 Julia、Python 和 R(数据科学的三种开源语言)
- 是一款程序员和科学工作者的 编程/文档/笔记/展示 软件
- .ipynb 文件格式是用于计算型叙述的 JSON 文档格式 的正式规范
为什么使用 Jupyter Notebook ?
- 传统软件开发: 工程/目标明确
- 需求分析,设计架构,开发模块,测试
- 数据挖掘:艺术/目标不明确
- 目的是具体的洞察目标,而不是机械的完成任务
- 通过执行代码来理解问题
- 迭代式地改进代码来改进解决方法
实时运行的代码、叙事性的文本和可视化被整合在一起,方便使用代码和数据来讲述故事
一个 Python 编辑环境,可以实时的查看代码的运行效果。
对比 Jupyter Notebook 和 Pycharm
画图
数据展示
总结:Jupyter Notebook 相比 Pycharm 在画图和数据展示方面更有优势。
Jupyter Notebook 的使用
界面启动、创建文件
环境搭建好后,在命令行下输入 jupyter notebook 命令,会自动弹出浏览器窗口打开 Jupyter Notebook
# 输入命令
jupyter notebook
本地 notebook 的默认 URL 为:http://localhost:8888
想让 notebook 打开指定目录,只要进入此目录后执行命令即可
新建 notebook 文档
内容界面操作
标题栏: 点击标题(如 Untitled)修改文档名
编辑栏:
cell 单元格操作
- 什么是 cell?
cell
:一对 In Out 会话被视作一个代码单元,称为 cellcell
行号前的*
,表示代码正在运行
Jupyter 支持两种模式:
- 编辑模式(Enter)
- 命令模式下
回车 Enter
或鼠标双击
cell 进入编辑模式 - 可以操作 cell 内文本或代码,剪切/复制/粘贴移动等操作
- 命令模式下
- 命令模式(Esc)
- 按
Esc
退出编辑,进入命令模式 - 可以操作 cell 单元本身进行剪切/复制/粘贴/移动等操作
- 按
快捷键操作
两种模式通用快捷键
Shift+Enter
,执行本单元代码,并跳转到下一单元Ctrl+Enter
,执行本单元代码,留在本单元
命令模式:按 ESC 进入
A
,在当前 cell 的上面添加 cellB
,在当前 cell 的下面添加 cellY
,cell 切换到 Code 模式M
,cell 切换到 Markdown 模式
其他(了解)
双击 D
:删除当前 cellZ
,回退L
,为当前 cell 加上行号Ctrl+Shift+P
,对话框输入命令直接运行- 快速跳转到首个 cell,
Crtl+Home
- 快速跳转到最后一个 cell,
Crtl+End
编辑模式:按 Enter 进入
- 补全代码:变量、方法后跟
Tab 键
- 为一行或多行代码添加/取消注释:
Ctrl+/
(Mac:CMD+/
)
- 补全代码:变量、方法后跟
其他(了解):
- 多光标操作:
Ctrl 键点击鼠标
(Mac:CMD+点击鼠标) - 回退:
Ctrl+Z
(Mac:CMD+Z) - 重做:
Ctrl+Y
(Mac:CMD+Y)
- 多光标操作:
鼠标操作
markdown 演示
掌握标题和缩进即可
其他操作
函数名 + ? 查看源码
table 自动补全
Jupyter Notebook 拓展
Jupyter Notebook 中自动补全代码等相关功能拓展【了解】
效果展示:
安装拓展库
安装该库的命令如下:
python -m pip install jupyter_contrib_nbextensions
然后执行:
jupyter contrib nbextension install --user --skip-running-check
在原来的基础上勾选: “Table of Contents” 以及 “Hinterland”
部分功能:
注意事项
jupyter notebook
每一个cell
运行完后都会把这个cell
中的变量保存到内存中,如果在一个cell
中修改了之前的变量,再此运行这个 cell
的时候可能会导致一些问题产生。比如以下代码:
# 第一个 cell 中的代码
a = 10
b = 20
# 第二个 cell 中的代码
c = a / b
b = 0
因为第二个cell
修改了b
变量,此时在整个环境中b
都是等于 0 的,所以以后再运行这个cell
的时候,a/b
这个就会出问题了。这时候可以使用 Kernel->Restart&Run All
来重新运行整个项目。
附录:conda 基本使用
conda
伴随着Anaconda
安装而自动安装的。conda
可以跟virtualenv
一样管理不同的环境,也可以跟pip
一样管理某个环境下的包。以下来看看两个功能的用法。
环境管理:
conda
能跟virtualenv
一样管理不同的Python
环境,不同的环境之间是互相隔离,互不影响的。为什么需要创建不同的环境呢?原因是有时候项目比较多,但是项目依赖的包不一样,比如 A
项目用的是Python2
开发的,而B
项目用的是Python3
开发的,那么我们在同一台电脑上就需要两套不同的环境来支撑他们运行了。创建环境的基本命令如下:
# conda create --name [环境名称] 比如以下:
conda create --name da-env
这样将创建一个叫做da-env
的环境,这个环境的python
解释器根据anaconda
来,如果anaconda
为3.7
,那么将默认使用3.7
的环境,如果anaconda
内置的是2.7
,那么将默认使用2.7
的环境。然后你就可以使用conda install numpy
的方式来安装包了,并且这样安装进来的包,只会安装在当前环境中。有的同学可能有想问,如果想要装一个Python2.7
的环境,anaconda
中没有内置Python2.7
,那么该怎么实现呢?。实际上,我们只需要在安装的时候指定python
的版本,如果这个版本现在不存在,那么 anaconda
会自动的给我们下载。所以安装Python2.7
的环境,使用以下代码即可实现:
conda create --name xxx python=2.7
以下再列出conda
管理环境的其他命令:
创建的时候指定需要安装的包:
conda create --name xxx numpy pandas
创建的时候既需要指定包,也需要指定 python 环境:
conda create --name xxx python=3.6 numpy pandas
进入到某个环境
windows: activate xxx mac/linux: source activate xxx
退出环境:
deactivate
列出当前所有的环境:
conda env list
移除某个环境:
conda remove --name xxx --all
环境下的包导出和导入:
- 导出:
conda env export > environment.yml
。 - 导入:
conda env create --name xxx -f environment.yml
。
- 导出:
包管理:
conda
也可以用来管理包。比如我们创建完一个新的环境后,想要在这个环境中安装包(比如 numpy),那么可以通过以下代码来实现:
activate
xxx
conda
install
numpy
以下再介绍一些包管理常用的命令:
在不进入某个环境下直接给这个环境安装包:
conda install [包名] -n [环境名]
列出该环境下所有的包:
conda list
卸载某个包:
conda remove [包名]
设置安装包的源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
附录:Jupyter 常用快捷键
命令模式(按 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:向下滚动
编辑模式:
- 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-Shift-Subtract : 分割单元
- Ctrl-S : 文件存盘
- Shift : 忽略
- Up : 光标上移或转入上一单元
- Down :光标下移或转入下一单元