天天看点

数据分析1--基本概念

一、Anconda的相关操作

1、Anconda的下载:

Anaconda是Python的一个免费发行版本,适合在数据科学与机器学习领域的开发。其集成了Python解释器,同时也包含很多数据科学计算的软件包与开发工具。

下载地址:https://www.anaconda.com/download/

2、虚拟环境的操作:

创建虚拟环境:

conda create -n 虚拟环境名称 python=版本号
           

如下:

数据分析1--基本概念

删除虚拟环境:

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、查看帮助

可以使用?或者??来查看帮助信息,如下所示:

数据分析1--基本概念

2、命令补全

使用TAB键

3、魔法命令

魔法命令分为%与%%两种形式,即在相应的命令前使用%或%%前缀。但并非所有的魔法命令都支持这两种形式。

其中:%行模式,%%单元格模式

1)lsmagic:显示所有可用的魔法命令

数据分析1--基本概念

2)run:运行外部Python文件,运行结束后,外部文件中定义的名称会得到保留。格式为%run 文件路径。如果是通过Python来运行程序,则程序结束后,文件中定义的名称不会得到保留。如下

在文件中写入如下语句:x=1

数据分析1--基本概念

可以理解为将外部文件中的文件代码复制在ipython解释器上运行

3)who:显示当前自定义的变量,方法等名称,不会显示IPython解释器内建的名称。当指定类型列表时,仅类型匹配类型列表中的名称才会显示

数据分析1--基本概念

4)whos:与who类似,但是会显示当前名称的详细信息。

数据分析1--基本概念

5)time:执行语句计时功能。语句只执行一次。

数据分析1--基本概念

6)timeit:虽然time能够执行计时功能,但是如果语句过于简单,很可能计时结果为0。此时,我们可以使用循环多次执行。但更方便的方式是,使用timeit来完成多次执行的操作。

timeit支持行模式与单元格模式。在单元格模式下,第一行语句(与魔法命令在同一行的语句)为设置(初始化)语句,作用是可以用来定义变量供后续的代码使用。设置语句会执行,但是不参与计时。第二行至整个单元格末尾的语句会执行并参与计时。我们可以使用-n来指定每论测试执行的次数(默认会选择最佳的次数),-r指定执行的测试轮数(默认为7)。

timeit的单元格中,如果需要对外面的变量进行修改,需要使用global。

数据分析1--基本概念

数据显示格式为:均值±标准差

数据分析1--基本概念

使用单元格模式

数据分析1--基本概念
数据分析1--基本概念

7)automagic:automagic命令用来设置在使用魔法命令时,是否需要使用%前缀。默认情况下,automagic是开启的,使用魔法命令可以不用使用%前缀。每次执行automagic命令时,就会切换开启 / 关闭状态。其行为类似于toggle button。

当automagic处于开启状态,如果我们定义了与魔法命令相同名称的变量(或方法,类)时,访问的将是我们自定义的名称。为了避免不必要的混淆,建议在使用魔法命令时,总是使用%前缀.

数据分析1--基本概念

8)history:类似与Linux的history命令,显示IPython的命令执行历史记录。

%history
           

9)writefile:将单元格的内容写入到文件中。如果文件不存在则创建,如果文件存在,则覆盖文件。如果指定-a选项,则追加内容(不覆盖)。

格式: %%writefile [-a] filename

数据分析1--基本概念
数据分析1--基本概念

10)prun:通过Python的代码分析器,来分析程序(语句)的执行时间。结果会根据total time(花费时间)进行倒序排列。通过prun分析功能,我们就可以发现程序中最耗时的部分,进而可以针对性的进行优化。

ncalls 函数调用次数。

tottime 总共调用消耗的时间(不包括子函数调用消耗的时间)。

percall 每次调用消耗的时间。

cumtime 总共调用消耗的时间(包括子函数调用消耗的时间)。

percall 每次调用消耗的时间。

filename:lineno(function) 文件名:行号(函数名)

数据分析1--基本概念

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载入,才能使用。

数据分析1--基本概念

11)memit:分析语句的内存使用情况。memit支持行模式与单元格模式。在单元格模式下,第一行语句(与魔法命令在同一行的语句)为设置(初始化)语句,作用是可以用来定义变量供后续的代码使用。设置语句会执行,但不参与计算内存使用。第二行至整个单元格末尾的语句会参与计算内存

说明:

memit不是IPython内置的,需要安装memory_profiler模块。

安装后,需要通过%load_ext memory_profiler载入,才能使用

数据分析1--基本概念

12)mpun:逐行分析语句的内存使用情况。分析结果列如下:

Line # 行号。

Mem usage 内存使用大小。

Increment 内存增量。

Line Content 代码内容。

%mprun -f 分析函数1 -f 分析函数2 …… 启动语句
           

说明:

mprun不是IPython内置的,需要安装memory_profiler模块

安装后,需要通过%load_ext memory_profiler载入,才能使用

mprun测试的函数必须定义在独立的模块中,不能定义在交互式环境中。

如果需要重新加载模块,可以调用importlib模块提供的reload函数来实现。

数据分析1--基本概念

三、执行系统命令

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的单元格分为两种模式:

命令模式 单元格处于选中状态,此时单元格左侧为粗蓝色线条,其余为细灰色线条

编辑模式 单元格处于编辑状态,此时单元格左侧为粗绿色线条,其余为细绿色线条。(此时右上角会出现铅笔图标)

常用快捷键

数据分析1--基本概念

可在线框内按钮查看所有快捷键

命令模式下的快捷键

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级标题。

数据分析1--基本概念
数据分析1--基本概念

无序列表:

无序列表可以使用*,-或+后跟随一个空格来表示。也可以通过不同的符号混合表示多级列表

数据分析1--基本概念
数据分析1--基本概念

有序列表:

有序列表使用数字跟随一个点(.)表示

数据分析1--基本概念
数据分析1--基本概念

换行

使用两个或以上的空白符

粗体/斜体

使用**或__包围的字体为粗体。使用*或_包围的字体为斜体。

数据分析1--基本概念
数据分析1--基本概念

删除线

使用~~包围的字体会带有删除线效果

数据分析1--基本概念
数据分析1--基本概念

代码

数据分析1--基本概念
数据分析1--基本概念
数据分析1--基本概念
数据分析1--基本概念
数据分析1--基本概念

引用

使用>前缀来引用一段内容。

数据分析1--基本概念
数据分析1--基本概念

分割线

使用***或者—来加入分割线

数据分析1--基本概念
数据分析1--基本概念

链接与图片

数据分析1--基本概念
数据分析1--基本概念
数据分析1--基本概念
数据分析1--基本概念
数据分析1--基本概念

Latex

LaTex是一个文件准备系统(document preparation system),用来进行排版,支持复杂的数学公式表示

Latex使用

$公式$

或者

$$公式$$

的格式

LaTex在线编辑:http://latex.codecogs.com/eqneditor/editor.php

数据分析1--基本概念
数据分析1--基本概念

输出:

数据分析1--基本概念
上一篇: ETL详解
下一篇: ETL:etl简介

继续阅读