Skip to content

环境搭建

Anaconda:

Anaconda(水蟒)是一个捆绑了Pythonconda、其他相关依赖包的一个软件。包含了 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 promptAnaconda NavigatorSpyderjupyter 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

shell
# 输入命令
jupyter notebook

本地 notebook 的默认 URL 为:http://localhost:8888

想让 notebook 打开指定目录,只要进入此目录后执行命令即可

notebook1

新建 notebook 文档

img

内容界面操作

标题栏: 点击标题(如 Untitled)修改文档名

编辑栏:

cell 单元格操作

  • 什么是 cell?
    • cell:一对 In Out 会话被视作一个代码单元,称为 cell
    • cell 行号前的 * ,表示代码正在运行

Jupyter 支持两种模式:

  • 编辑模式(Enter)
    • 命令模式下回车 Enter鼠标双击cell 进入编辑模式
    • 可以操作 cell 内文本或代码,剪切/复制/粘贴移动等操作
  • 命令模式(Esc)
    • Esc退出编辑,进入命令模式
    • 可以操作 cell 单元本身进行剪切/复制/粘贴/移动等操作

快捷键操作

  • 两种模式通用快捷键

    • Shift+Enter,执行本单元代码,并跳转到下一单元
    • Ctrl+Enter,执行本单元代码,留在本单元
  • 命令模式:按 ESC 进入

    • A,在当前 cell 的上面添加 cell
    • B,在当前 cell 的下面添加 cell
    • Y,cell 切换到 Code 模式
    • M,cell 切换到 Markdown 模式
  • 其他(了解)

    • 双击 D:删除当前 cell
    • Z,回退
    • 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 中自动补全代码等相关功能拓展【了解】

效果展示:

安装拓展库

安装该库的命令如下:

shell
python -m pip install jupyter_contrib_nbextensions

然后执行:

shell
jupyter contrib nbextension install --user --skip-running-check

在原来的基础上勾选: “Table of Contents” 以及 “Hinterland”

部分功能:

注意事项

jupyter notebook每一个cell运行完后都会把这个cell中的变量保存到内存中,如果在一个cell中修改了之前的变量,再此运行这个 cell的时候可能会导致一些问题产生。比如以下代码:

python
# 第一个 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开发的,那么我们在同一台电脑上就需要两套不同的环境来支撑他们运行了。创建环境的基本命令如下:

shell
# conda create --name [环境名称] 比如以下:
conda create --name da-env

这样将创建一个叫做da-env的环境,这个环境的python解释器根据anaconda来,如果anaconda3.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管理环境的其他命令:

  1. 创建的时候指定需要安装的包:

     conda create --name xxx numpy pandas
  2. 创建的时候既需要指定包,也需要指定 python 环境:

     conda create --name xxx python=3.6 numpy pandas
  3. 进入到某个环境

     windows: activate xxx
     mac/linux: source activate xxx
  4. 退出环境:

     deactivate
  5. 列出当前所有的环境:

     conda env list
  6. 移除某个环境:

     conda remove --name xxx --all
  7. 环境下的包导出和导入:

    • 导出:conda env export > environment.yml
    • 导入:conda env create --name xxx -f environment.yml

包管理:

conda也可以用来管理包。比如我们创建完一个新的环境后,想要在这个环境中安装包(比如 numpy),那么可以通过以下代码来实现:

python
activate
xxx
conda
install
numpy

以下再介绍一些包管理常用的命令:

  1. 在不进入某个环境下直接给这个环境安装包:

    conda install [包名] -n [环境名]
  2. 列出该环境下所有的包:

     conda list
  3. 卸载某个包:

     conda remove [包名]
  4. 设置安装包的源:

     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 键):

  1. Enter:转入编辑模式
  2. Shift-Enter:运行本单元,选中下个单元
  3. Ctrl-Enter:运行本单元
  4. Alt-Enter:运行本单元,在其下插入新单元
  5. Y:单元转入代码状态
  6. M:单元转入 markdown 状态
  7. R:单元转入 raw 状态
  8. 1:设定 1 级标题
  9. 2:设定 2 级标题
  10. 3:设定 3 级标题
  11. 4:设定 4 级标题
  12. 5:设定 5 级标题
  13. 6:设定 6 级标题
  14. Up:选中上方单元
  15. K:选中上方单元
  16. Down:选中下方单元
  17. J:选中下方单元
  18. Shift-K:扩大选中上方单元
  19. Shift-J:扩大选中下方单元
  20. A:在上方插入新单元
  21. B:在下方插入新单元
  22. X:剪切选中的单元
  23. C:复制选中的单元
  24. Shift-V:粘贴到上方单元
  25. V:粘贴到下方单元
  26. Z:恢复删除的最后一个单元
  27. D,D:删除选中的单元
  28. Shift-M:合并选中的单元
  29. Ctrl-S:文件存盘
  30. S:文件存盘
  31. L:转换行号
  32. O:转换输出
  33. Shift-O:转换输出滚动
  34. Esc:关闭页面
  35. Q:关闭页面
  36. H:显示快捷键帮助
  37. I,I:中断 Notebook 内核
  38. 0,0:重启 Notebook 内核
  39. Shift:忽略
  40. Shift-Space:向上滚动
  41. Space:向下滚动

编辑模式:

  1. Tab : 代码补全或缩进
  2. Shift-Tab : 提示
  3. Ctrl-] : 缩进
  4. Ctrl-[ : 解除缩进
  5. Ctrl-A : 全选
  6. Ctrl-Z : 复原
  7. Ctrl-Shift-Z : 再做
  8. Ctrl-Y : 再做
  9. Ctrl-Home : 跳到单元开头
  10. Ctrl-Up : 跳到单元开头
  11. Ctrl-End : 跳到单元末尾
  12. Ctrl-Down : 跳到单元末尾
  13. Ctrl-Left : 跳到左边一个字首
  14. Ctrl-Right : 跳到右边一个字首
  15. Ctrl-Backspace : 删除前面一个字
  16. Ctrl-Delete : 删除后面一个字
  17. Esc : 进入命令模式
  18. Ctrl-M : 进入命令模式
  19. Shift-Enter : 运行本单元,选中下一单元
  20. Ctrl-Enter : 运行本单元
  21. Alt-Enter : 运行本单元,在下面插入一单元
  22. Ctrl-Shift-- : 分割单元
  23. Ctrl-Shift-Subtract : 分割单元
  24. Ctrl-S : 文件存盘
  25. Shift : 忽略
  26. Up : 光标上移或转入上一单元
  27. Down :光标下移或转入下一单元