一、Anconda的相关操作
1、Anconda的下载:
Anaconda是Python的一个免费发行版本,适合在数据科学与机器学习领域的开发。其集成了Python解释器,同时也包含很多数据科学计算的软件包与开发工具。
下载地址:https://www.anaconda.com/download/
2、虚拟环境的操作:
创建虚拟环境:
conda create -n 虚拟环境名称 python=版本号
如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR1EeFpnT1UkaOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzQzNzITMzkTM3ATNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
删除虚拟环境:
conda remove -n 虚拟环境名称 --all
如:
激活(进入)虚拟环境:
source activate 虚拟环境名称
离开虚拟环境:
source deactivate
相关说明:
当创建虚拟环境后,就会在Anaconda安装目录下的envs目录下,创建虚拟环境相关的文件。
在Linux环境下,需要使用source,Windows需要省去source。
创建虚拟环境后,虚拟环境中仅会安装一些必须的软件包,例如pip等。如果需要安装Anaconda所有的库,需要:
conda create -n 虚拟环境名称 python=版本号 anaconda
3、conda包管理器
conda是一个包管理器,可以用来下载(删除)Python软件包(与pip有些类似)。
安装包:
conda install 包
卸载包:
conda remove 包
更新包:
conda update 包
查看包:
4、Anaconda Navigator
Anaconda Navigator是Anaconda提供的一款图形化界面工具,我们可以方便的实现虚拟环境以及软件包的管理。
5、Ipython
IPython(Interactive Python),是一款增强型Python解释器,在Python的基础上,提供了很多额外的功能。IPython可以使用如下命令安装:
pip install ipython
二、相关命令
1、查看帮助
可以使用?或者??来查看帮助信息,如下所示:
2、命令补全
使用TAB键
3、魔法命令
魔法命令分为%与%%两种形式,即在相应的命令前使用%或%%前缀。但并非所有的魔法命令都支持这两种形式。
其中:%行模式,%%单元格模式
1)lsmagic:显示所有可用的魔法命令
2)run:运行外部Python文件,运行结束后,外部文件中定义的名称会得到保留。格式为%run 文件路径。如果是通过Python来运行程序,则程序结束后,文件中定义的名称不会得到保留。如下
在文件中写入如下语句:x=1
可以理解为将外部文件中的文件代码复制在ipython解释器上运行
3)who:显示当前自定义的变量,方法等名称,不会显示IPython解释器内建的名称。当指定类型列表时,仅类型匹配类型列表中的名称才会显示
4)whos:与who类似,但是会显示当前名称的详细信息。
5)time:执行语句计时功能。语句只执行一次。
6)timeit:虽然time能够执行计时功能,但是如果语句过于简单,很可能计时结果为0。此时,我们可以使用循环多次执行。但更方便的方式是,使用timeit来完成多次执行的操作。
timeit支持行模式与单元格模式。在单元格模式下,第一行语句(与魔法命令在同一行的语句)为设置(初始化)语句,作用是可以用来定义变量供后续的代码使用。设置语句会执行,但是不参与计时。第二行至整个单元格末尾的语句会执行并参与计时。我们可以使用-n来指定每论测试执行的次数(默认会选择最佳的次数),-r指定执行的测试轮数(默认为7)。
timeit的单元格中,如果需要对外面的变量进行修改,需要使用global。
数据显示格式为:均值±标准差
使用单元格模式
7)automagic:automagic命令用来设置在使用魔法命令时,是否需要使用%前缀。默认情况下,automagic是开启的,使用魔法命令可以不用使用%前缀。每次执行automagic命令时,就会切换开启 / 关闭状态。其行为类似于toggle button。
当automagic处于开启状态,如果我们定义了与魔法命令相同名称的变量(或方法,类)时,访问的将是我们自定义的名称。为了避免不必要的混淆,建议在使用魔法命令时,总是使用%前缀.
8)history:类似与Linux的history命令,显示IPython的命令执行历史记录。
%history
9)writefile:将单元格的内容写入到文件中。如果文件不存在则创建,如果文件存在,则覆盖文件。如果指定-a选项,则追加内容(不覆盖)。
格式: %%writefile [-a] filename
10)prun:通过Python的代码分析器,来分析程序(语句)的执行时间。结果会根据total time(花费时间)进行倒序排列。通过prun分析功能,我们就可以发现程序中最耗时的部分,进而可以针对性的进行优化。
ncalls 函数调用次数。
tottime 总共调用消耗的时间(不包括子函数调用消耗的时间)。
percall 每次调用消耗的时间。
cumtime 总共调用消耗的时间(包括子函数调用消耗的时间)。
percall 每次调用消耗的时间。
filename:lineno(function) 文件名:行号(函数名)
11)lrun:lprun可以逐行对程序进行分析,相对与prun的函数分析,会更加细致。
格式:%lprun -f 函数1 [-f 函数2, ……] <执行语句>
%lprun -f 分析时间的函数1 -f 分析时间的函数2 …… 启动语句
其中-f指定要分析的函数。分析结果列如下:
Line # 行号。
Hits 执行次数。
Time 总共消耗时间。
Per Hit 单次执行消耗的时间。
% Time 消耗的时间百分比。
Line Contents 行内容
说明:
lprun不是IPython内置的,需要安装line_profiler模块。
安装后,需要通过%load_ext line_profiler载入,才能使用。
11)memit:分析语句的内存使用情况。memit支持行模式与单元格模式。在单元格模式下,第一行语句(与魔法命令在同一行的语句)为设置(初始化)语句,作用是可以用来定义变量供后续的代码使用。设置语句会执行,但不参与计算内存使用。第二行至整个单元格末尾的语句会参与计算内存
说明:
memit不是IPython内置的,需要安装memory_profiler模块。
安装后,需要通过%load_ext memory_profiler载入,才能使用
12)mpun:逐行分析语句的内存使用情况。分析结果列如下:
Line # 行号。
Mem usage 内存使用大小。
Increment 内存增量。
Line Content 代码内容。
%mprun -f 分析函数1 -f 分析函数2 …… 启动语句
说明:
mprun不是IPython内置的,需要安装memory_profiler模块
安装后,需要通过%load_ext memory_profiler载入,才能使用
mprun测试的函数必须定义在独立的模块中,不能定义在交互式环境中。
如果需要重新加载模块,可以调用importlib模块提供的reload函数来实现。
三、执行系统命令
IPython可以执行系统命令,只需使用!前缀即可。 例如:!cd,!dir等。
!conda install memroy_profiler
四、jupyter notebook使用
jupyter notebook是一款开源的Web应用程序,该应用程序可以用来创建并共享实施代码,方程式,可视化以及文本说明。jupyter notebook基于IPython解释器,是一个基于Web的交互式计算环境。从不正规的角度讲,可以将jupyter notebook看成是一个Web版的IPython,实际上,jupyter notebook之前的名称就叫做IPython notebook。
jupyter notebook的启动:
启动jupyter可以使用:jupyter notebook
当执行命令后,就会启动jupyter服务,同时打开浏览器页面,显示jupyter的home页面。默认情况下,会使用当前所在的目录作为根目录
可以用如下格式切换jupyter notebook启动时的根目录
jupyter notebook -notebook=e:/jupyter_notebook
上传与新建文件
如果我们需要打开的文件不在当前的主目录下,我们可以点击upload进行上传
我们也可以点击new新建文件或目录
单元格:
jupyter notebook文档由一些列单元格组成,我们可以在单元格中输入相关的代码或者说明文字。单元格有以下几种类型:
code 代码单元格,用来编写程序。
Markdown 支持Markdown语法的单元格,用来编写描述程序的文字。
Raw NBConvert 原生类型单元格,内容会原样显示。在使用NBConvert转换后才会显示成特殊的格式。
Heading 标题单元格,已经不在支持使用。
命令模式与编辑模式
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使用
$公式$
或者
$$公式$$
的格式
LaTex在线编辑:http://latex.codecogs.com/eqneditor/editor.php
输出: