数据分析
定义 :
1
数据分析是基于商业目的, 有目的的进行收集, 整理, 加工和分析数据, 提炼有价信息的一个过程
过程 :
1
明确分析目的与框架, 数据收集, 数据处理(数据清洗, 数据转换), 数据分析, 数据展现和撰写报告等6个阶段
数据类型 :
1
2
3
4
5
6
表格型数据, 其中各列可能是不同的类型(字符串, 数值, 日期等), 比如保存在关系型数据库中或以制表符/逗号为分隔符的文本文件中的那些数据
多维数据(矩阵)
通过关键列(对于SQL用户而言, 就是主键和外键)相互联系的多个表
间隔平均或不平均的时间序列

Excel是最广泛的数据分析工具
为什么用Python进行数据分析 (Java也可以做数据分析, 但过于笨重, 还有R语言也可以做数据分析, Python最大的竞争语言)
1
2
3
4
拥有巨大活跃的科学计算社区
数据科学, 机器学习, 学界和工业界开发重要语言
胶水语言(胶水就是可以与其他语言进行对接), 轻松集成就有算法和系统
不仅适用于研究和原型构建(冲着R语言说的), 同时也适用于构建生产系统
重要的Python库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1.NumPy(Numerical Python) -- 简历
Python科学计算的基础包 :
快速高效的多维数组对象ndarry
用于对数组执行元素级计算以及直接对数据执行数学运算的函数
用于读写硬盘上基于数组的数据集的工具
线性代数运算, 傅里叶变换, 以及随机数生成
成熟的C API, 用于Python插件和原生C, C++, Fortran代码访问NumPy的数据结构和计算工具
对于数值型数据, NumPy数组在存储和处理数据时要比内置的Python数据结构高效得多

2.pandas
pandas提供了快速便捷处理结构化数据的大量数据结构和函数
pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能, 它提供了复杂精细的索引功能, 能更加便捷地完成重塑, 切片和切块, 聚合以及选取数据子集等操作
数据操作, 准备, 清晰是数据分析最重要的技能(耗时最长)

3.matplotlib
最流行的用于绘制图表和其它二维数据可视化的Python库
适合创建出版物上用的图表
4.IPython 和 Jupyter
执行 -> 探索工作流 (探索, 试错, 重复)
IPython web notebook -> Jupyter notebook(支持40多种编程语言)
Jupyter notebook 支持markdown和html
5.Scipy
一组专门解决科学计算中各种标准问题域的包的集合
6.scikit-learn
scikit-learn成为了了Python的通⽤用机器器学习⼯工具包
7.statsmodels
statsmodels包含经典统计学和经济计量量学的算法
常用模块引用惯例
1
2
3
4
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import statsmodels as sm
安装Anaconda

Downloads-Anaconda

Python 1991年年出现,Python 2.x在2020年年就会到期(包括重要的安全补丁),新项目请使用Python 3

IPython基础
1
2
3
4
$ ipython
In [1]: a = 5
In [2]: a
Out[2]: 5
pretty printed(Python对象被格式化为更更易易读的形式)
1
2
3
4
5
6
7
8
9
10
11
In [5]: import numpy as np
In [6]: data = {i : np.random.randn() for i in range(7)}
In [7]: data
Out[7]:
{0: -0.20470765948471295,
1: 0.47894333805754824,
2: -0.5194387150567381,
3: -0.55573030434749,
4: 1.9657805725027142,
5: 1.3934058329729904,
6: 0.09290787674371767}
运行Jupyter Notebook

notebook是Jupyter项目的重要组件之一,它是一个代码、文本(有标记或无标记)、数据可视化或其它输出的交互式文档。
Python的Jupyter内核是使用IPython。

启动Jupyter
1
$ jupyter notebook

Jupyter Notebook
要新建一个notebook,点击按钮New,选择“Python3”或“conda[默认项]”。如果是第一次,
点击空格,输入一行Python代码。然后按Shift-Enter执行。
当保存notebook时(File⽬目录下的Save and Checkpoint),会创建一个后缀名为.ipynb的文
件。
要加载存在的notebook,把它放到启动notebook进程的相同目录内。

1
2
%pwd
%ls
Tab补全
1
2
3
4
5
In [3]: b = [1, 2, 3]
In [4]: b.<Tab>
b.append b.count b.insert b.reverse
b.clear b.extend b.pop b.sort
b.copy b.index b.remove
1
2
3
4
5
In [1]: import datetime
In [2]: datetime.<Tab>
datetime.date datetime.MAXYEAR datetime.timedelta
datetime.datetime datetime.MINYEAR datetime.timezone
datetime.datetime_CAPI datetime.time datetime.tzinfo
在变量量前后使⽤用问号?,可以显示对象的信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
In [8]: b = [1, 2, 3]

In [9]: b?
Type: list
String Form:[1, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items

In [10]: print?
Docstring:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
Type: builtin_function_or_method
1
2
3
4
5
6
7
8
def add_numbers(a, b):
"""
Add two numbers together
Returns
-------
the_sum : type of arguments
"""
return a + b

然后使用?符号,就可以显示如下的文档字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
In [11]: add_numbers?
Signature: add_numbers(a, b)
Docstring:
Add two numbers together

Returns
-------
the_sum : type of arguments
File: <ipython-input-9-6a548a216e27>
Type: function

使⽤用??会显示函数的源码:

In [12]: add_numbers??
Signature: add_numbers(a, b)
Source:
def add_numbers(a, b):
"""
Add two numbers together
Returns
-------
the_sum : type of arguments
"""
return a + b
File: <ipython-input-9-6a548a216e27>
Type: function
搜索IPython的命名空间
1
2
3
4
5
6
In [13]: np.*load*?
np.__loader__
np.load
np.loads
np.loadtxt
np.pkgload
%run, %load, %paste, %cpaste 命令

%run命令运行所有的Python程序

1
In [14]: %run test3.py

文件中所有定义的变量(import、函数和全局变量,除非抛出异常),都可以在IPython shell
中随后访问

在Jupyter notebook中,你也可以使用%load,它将脚本导入到一个代码格中

1
%load test3.py

%paste和%cpaste 函数。%paste 可以直接运行剪贴板中的代码

IPython快捷键

魔术命令

%timeit 测量任何Python语句,例如矩阵乘法,的执行时间

1
2
In [23]: foo = %pwd
In [24]: foo

IPython魔术命令

集成Matplotlib

IPython在分析计算领域能够流行的原因之一是它非常好的集成了数据可视化和其它用户界面
库,比如matplotlib

1
2
3
%matplotlib
import matplotlib.pyplot as plt
plt.plot(np.random.randn(50).cumsum())

最后更新: 2018年08月20日 19:33

原始链接: http://yoursite.com/2018/08/20/数据分析1/

× 请我吃糖~
打赏二维码