文章目录
资源图
说明
- 第一节看博客 后面的全发链接了
下载链接
地址
https://pan.baidu.com/s/1sH2_yKAGw6owg0qitVZVFA
数据科学与计算
相关库
- numpy
- matplotlib
- pandas
相关开发工具
- PyCharm
- Anaconda
- IPython
- Jupyter notebook
- Spyder
说明:
- IPython,Jupyter notebook与Spyder已集成在Anaconda中。
- 选择哪一款开发工具,取决于个人的偏好。
Anaconda
Anaconda是Python的一个免费发行版本,适合在数据科学与机器学习领域的开发。其集成了Python解释器,同时也包含很多数据科学计算的软件包与开发工具。Anaconda具有两个版本:
- Anaconda
- Miniconda
下载与安装
我们可以登录https://www.anaconda.com/download/ 进行下载。
虚拟环境
- 创建虚拟环境
conda create -n 虚拟环境名称 python=版本号
- 删除虚拟环境
conda remove -n 虚拟环境名称 --all
- **(进入)虚拟环境
source activate 虚拟环境名称
- 离开虚拟环境
source deactivate
说明:
- 当创建虚拟环境后,就会在Anaconda安装目录下的envs目录下,创建虚拟环境相关的文件。
- 在Linux环境下,需要使用source,Windows需要省去source。
- 创建虚拟环境后,虚拟环境中仅会安装一些必须的软件包,例如pip等。如果需要安装Anaconda所有的库,需要:
conda create -n 虚拟环境名称 python=版本号 anaconda
conda包管理器
conda是一个包管理器,可以用来下载(删除)Python软件包(与pip有些类似)。
- 安装包
conda install 包
- 卸载包
conda remove 包
- 更新包
conda update 包
- 查看包
conda list
Anaconda Navigator
Anaconda Navigator是Anaconda提供的一款图形化界面工具,我们可以方便的实现虚拟环境以及软件包的管理。
IPython
IPython(Interactive Python),是一款增强型Python解释器,在Python的基础上,提供了很多额外的功能。IPython可以使用如下命令安装:pip install ipython
Anaconda集成了IPython解释器,只需在控制台上输入ipython即可启动IPython。
查看帮助
回忆:在Python中,如果查看帮助信息?
IPython提供了额外的功能,来获取帮助信息。
- ?
- ??
命令补全
- Tab
魔法命令
魔法命令分为%与%%两种形式,即在相应的命令前使用%或%%前缀。但并非所有的魔法命令都支持这两种形式。
- % 行模式
- %% 单元格模式
IPython提供了非常多的魔法命令,常用的魔法命令如下:
- run
- time
- timeit
- history
- who / whos
- lsmagic
- prun
- lprun
- memit
- mprun
- load_ext / reload_ext
- wirtefile(file)
- automagic
who
显示当前自定义的变量,方法等名称,不会显示IPython解释器内建的名称。当指定类型列表时,仅类型匹配类型列表中的名称才会显示。
whos
与who类似,但是会显示当前名称的详细信息。
time
执行语句计时功能。语句只执行一次。
timeit
虽然time能够执行计时功能,但是如果语句过于简单,很可能计时结果为0。此时,我们可以使用循环多次执行。但更方便的方式是,使用timeit来完成多次执行的操作。
timeit支持行模式与单元格模式。在单元格模式下,第一行语句(与魔法命令在同一行的语句)为设置(初始化)语句,作用是可以用来定义变量供后续的代码使用。设置语句会执行,但是不参与计时。第二行至整个单元格末尾的语句会执行并参与计时。我们可以使用-n来指定每论测试执行的次数(默认会选择最佳的次数),-r指定执行的测试轮数(默认为7)。
说明:
- timeit的单元格中,如果需要对外面的变量进行修改,需要使用global。
automagic
automagic命令用来设置在使用魔法命令时,是否需要使用%前缀。默认情况下,automagic是开启的,使用魔法命令可以不用使用%前缀。每次执行automagic命令时,就会切换开启 / 关闭状态。其行为类似于toggle button。
当automagic处于开启状态,如果我们定义了与魔法命令相同名称的变量(或方法,类)时,访问的将是我们自定义的名称。为了避免不必要的混淆,建议在使用魔法命令时,总是使用%前缀。
history
类似与Linux的history命令,显示IPython的命令执行历史记录。
writefile(file)
格式: %%writefile [-a] filename
将单元格的内容写入到文件中。如果文件不存在则创建,如果文件存在,则覆盖文件。如果指定-a选项,则追加内容(不覆盖)。
说明:
- writefile以前命名为file,为了兼容,file命令依然还能够使用。
prun
通过Python的代码分析器,来分析程序(语句)的执行时间。结果会根据total time(花费时间)进行倒序排列。通过prun分析功能,我们就可以发现程序中最耗时的部分,进而可以针对性的进行优化。
分析结果列说明:
- ncalls 函数调用次数。
- tottime 总共调用消耗的时间(不包括子函数调用消耗的时间)。
- percall 每次调用消耗的时间。
- cumtime 总共调用消耗的时间(包括子函数调用消耗的时间)。
- percall 每次调用消耗的时间。
- filename:lineno(function) 文件名:行号(函数名)
lprun
lprun可以逐行对程序进行分析,相对与prun的函数分析,会更加细致。
格式:%lprun -f 函数1 [-f 函数2, ……] <执行语句>
其中-f指定要分析的函数。分析结果列如下:
- Line # 行号。
- Hits 执行次数。
- Time 总共消耗时间。
- Per Hit 单次执行消耗的时间。
- % Time 消耗的时间百分比。
- Line Contents 行内容。
说明:
- lprun不是IPython内置的,需要安装line_profiler模块。
- 安装后,需要通过%load_ext line_profiler载入,才能使用。
memit
分析语句的内存使用情况。memit支持行模式与单元格模式。在单元格模式下,第一行语句(与魔法命令在同一行的语句)为设置(初始化)语句,作用是可以用来定义变量供后续的代码使用。设置语句会执行,但不参与计算内存使用。第二行至整个单元格末尾的语句会参与计算内存。
说明:
- memit不是IPython内置的,需要安装memory_profiler模块。
- 安装后,需要通过%load_ext memory_profiler载入,才能使用。
mprun
逐行分析语句的内存使用情况。分析结果列如下:
- Line # 行号。
- Mem usage 内存使用大小。
- Increment 内存增量。
- Line Content 代码内容。
说明:
- mprun不是IPython内置的,需要安装memory_profiler模块。
- 安装后,需要通过%load_ext memory_profiler载入,才能使用。
- mprun测试的函数必须定义在独立的模块中,不能定义在交互式环境中。
- 如果需要重新加载模块,可以调用importlib模块提供的reload函数来实现。
单元格
jupyter notebook文档由一些列单元格组成,我们可以在单元格中输入相关的代码或者说明文字。单元格有以下几种类型:
- code 代码单元格,用来编写程序。
- Markdown 支持Markdown语法的单元格,用来编写描述程序的文字。
- Raw NBConvert 原生类型单元格,内容会原样显示。在使用NBConvert转换后才会显示成特殊的格式。
- Heading 标题单元格,已经不在支持使用。
命令模式与编辑模式
此外,jupyter notebook的单元格分为两种模式:
- 命令模式 单元格处于选中状态,此时单元格左侧为粗蓝色线条,其余为细灰色线条。
- 编辑模式 单元格处于编辑状态,此时单元格左侧为粗绿色线条,其余为细绿色线条。(此时右上角会出现铅笔图标)
常用快捷键
我们可通过菜单Help -》 Keyboard Shortcuts查看所有的快捷键。jupyter notebook常用的快捷键如下:
命令模式
- Y 单元格转换成code类型。
- M 单元格转换成Markdown类型。
- R 单元格转换成Raw NBConvert类型。
- Enter 进入编辑模式。
- A 在当前单元格上方插入新单元格。
- B 在当前单元格下方插入新单元格。
- C 复制当前单元格。
- D(两次) 删除当前单元格。
- V 粘贴到当前单元格的下方。
- Shift + V 粘贴到当前单元格的上方。
- Z 撤销删除。
编辑模式
- Tab 代码补全
- Shift + Tab 显示doc文档信息。
- Esc 进入命令模式。
通用模式
- Ctrl + Enter 运行单元格,然后该单元格处于命令模式。
- Shift + Enter 运行单元格,并切换到下一个单元格,如果下方没有单元格,则会新建一个单元格。
- Alt + Enter 运行单元格,并在下方新增一个单元格。
-
Markdown
Markdown是一种使用纯文本格式语法的轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。Markdown同时也支持HTML标签。在Markdown类型的单元格中,支持使用Markdown语法与LaTex数学公式。
标题
标题可以使用1 ~ 6个#
跟随一个空格来表示1 ~ 6级标题。
无序列表
无序列表可以使用*
,-
或+
后跟随一个空格来表示。也可以通过不同的符号混合表示多级列表。
有序列表
有序列表使用数字跟随一个点(.)表示。
LaTex
LaTex是一个文件准备系统(document preparation system),用来进行排版,支持复杂的数学公式表示。
LaTex公式使用\$公式\$或\$\$公式\$\$进行界定。 在Markdown类型的单元格中,支持LaTex数学公式。
LaTex在线编辑:http://latex.codecogs.com/eqneditor/editor.php
spyder
类似于Matlib的一款集成开发工具。提供代码的编写,变量的展示与查看,代码调试等丰富的功能。