Python数据分析相关库的使用
这些库都是第三方库,Python自带的标准库中没有,所以要先安装才能使用:
第三方库名称 | 简介 |
Numpy | 提供数组支持,以及相应的高效的处理函数 |
Scipy | 提供矩阵支持,以及矩阵相关的数值计算模块 |
Matplotlib | 强大的数据可视化工具、绘图库 |
Pandas | 强大、灵活的数据分析和探索工具 |
StatsModels | 统计建模和计量经济学,包括描述统计、统计模型估计和推断 |
Scikit_Learn | 支持回归、分类、聚类等的强大的机器学习库 |
Keras | 深度学习库,用于建立神经网络以及深度学习模型 |
Gensim | 用来做文本主题模型的库,文本挖掘可能用到 |
Numpy
Python并没有提供数组功能,虽然列表可以完成基本的数据功能,但它不是真正的数组,而且在数据量较大的时候,使用列表的速度会让人慢的难受。Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。Numpy还是很多更高的第三方库的依赖库。
Numpy学习教程:NumPy中文文档、易百教程——NumPy教程、菜鸟教程——NumPy教程
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import numpy as np
a = np.array([2, 0, 1, 5]) # 创建一个一维数组
print(a) # 输出一维数组a:[2 0 1 5]
print(a[3]) # 输出第四个元素:5
print(a[:3]) # 输出前三个元素:[2 0 1]
print(a.min()) # 输出最小值:0
a.sort() # 将a的元素从小到大排序,此操作会直接修改a,因此这时a变成了[0 1 2 5]
print(a)
b = [1, 2, 3] # 创建一个列表
print(b) # 输出列表:[1,2,3]
print(min(b)) # 输出最小值:1
c = np.array([[1, 2, 3], [4, 5, 6]]) # 创建一个二维数组
print(c)
print(c * c) # 输出数组的平方阵
d = [[1, 2, 3], [4, 5, 6]]
print(d)
执行结果:
[2 0 1 5]
5
[2 0 1]
0
[0 1 2 5]
[1, 2, 3]
1
[[1 2 3]
[4 5 6]]
[[ 1 4 9]
[16 25 36]]
[[1, 2, 3], [4, 5, 6]]
Scipy
Scipy提供了真正的矩阵,以及大量基于矩阵运算的对象和函数。
Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程常用的计算。
Scipy依赖于Numpy,因此安装Scipy之前要先安装Numpy。
学习教程参考:Scipy学习教程
Matplotlib
Matplotlib是一个绘图库,用于数据的可视化,它主要用于二维绘图,也可以进行简单的三维绘图。
因为Matplotlib默认的字体是英文字体,所以中文会无法正常显示,解决的办法是在作图之前手动指定默认字体为中文字体,如黑体(SimHei):
plt.rcParams['font.sans-serif'] = ['SimHei'] # 修改matplotlib的默认字体为黑体,以正常显示中文
另外,保存作图图像时,负号有可能显示不正常,可通过以下代码解决:
plt.rcParams['axes.unicode_miuus'] = False # 解决保存图像时,负号(-)显示为方块的问题
小建议:有时间可以多去Matplotlib提供的“画廊”看看它做出来的漂亮效果(画廊:http://matplotlib.org/gallery.html)。
学习教程:NumPy Matplotlib库
Pandas
Pandas是Python下最强大的数据分析和探索工具。它包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单。Pandas构建在Numpy之上,它使得以Numpy为中心的应用很容易使用。
Pandas的功能非常强大,支持类似于SQL的数据增、删、查、改,并且带有丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等。可以阅读Pandas主要作者之一Wes McKinney写的《利用Python进行数据分析》一书,学习更详细的内容。
学习教程: Pandas教程