文章目录
1. 常用Python数据分析开源库介绍
1.1 Numpy
Numpy
(Numerical Python)是Python数据分析必不可少的第三方库,Numpy的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型,使其具备了构造复杂数据类型的能力。
- Numpy
是一个运行速度非常快的数学库,主要用于数组计算
,包含:
- 高性能科学计算和数据分析的基础包。
- ndarray,全称为 N-dimensional array(N 维数组),具有矢量(向量)运算能力,快速、节省空间。
- 矩阵运算,无需循环,可完成类似Matlab(商业数学软件)中的矢量运算。
- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具
- 示例代码1:无需使用循环逐个元素地进行操作
import numpy as np
a = np.array([1,2,3])
b = np.array([1,2,3])
c = a + b
print(c) # [2 4 6]
- 示例代码:计算两个向量的点积
a = np.array([1,2,3])
b = np.array([1,2,3])
res = np.dot(a,b)
print(res) # 14
1.2 Pandas
Pandas
是一个强大的分析结构化数据
的工具集,Pandas丰富的API能够更加灵活、快速的对数据进行清洗
、处理
以及分析
。- Pandas在数据处理上具有独特的优势:
- Pandas底层是
基于Numpy
构建的,所以运行速度特别的快。 - Pandas有专门的处理缺失数据的API 。
- Pandas具有强大而灵活的分组、聚合、转换功能。
- Pandas底层是
- Pandas利器之
Series
- Series是一种类似于一维数据的数据结构。
- 是由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即行索引)组成。
- 仅由一组数据也可产生简单的Series对象。
- Pandas利器之DataFrame
- DataFrame是一种表格型的数据结构,既有行索引也有列索引,可以简单的把DataFrame理解为一张数据表。
- 包含有一组或多组有序的列(Series),每列可以是不同的值类型(数值、字符串、布尔型等)。
1.3 Matplotlib
Matplotlib
是一个功能强大的数据可视化
开源Python库
- Python中使用最多的图形绘图库
- 可以创建静态、动态和交互式的图表
- 通过简单的代码调用,可以绘制出复杂的图形。
- 示例:
import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 生成数据
x = np.linspace(0, 3, 100)
y_sin = np.sin(x)
y_line = np.ones_like(x) * (x <= 1.5)
# 绘制图形
plt.plot(x, y_sin, label='sin函数图', color='blue')
plt.plot(x, y_line, label='折线图', color='red', linestyle='--')
# 添加图例
plt.legend()
# 设置坐标轴标签
plt.xlabel('x')
plt.ylabel('y')
# 设置标题
plt.title('Sin and Line Graphs')
# 显示图形
plt.show()
运行结果:
1.4 Seaborn
- Seaborn是一个Python数据可视化开源库。
- 建立在Matplotlilb之上,并集成了Pandas的数据结构。
- Seaborn通过更简洁的API来绘制信息更丰富,更具吸引力的图像。
- 面向数据集的API,与Pandas配合使用比直接使用Matplotlib更方便。
- 用户无需过多关注底层细节即可生成高质量的图表。
- 示例:
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 生成数据
x = np.linspace(0, 14, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
y4 = np.cos(x + np.pi/4)
# 创建DataFrame
data = pd.DataFrame({
'x': np.tile(x, 4),
'y': np.concatenate([y1, y2, y3, y4]),
'group': np.repeat([1, 2, 3, 4], len(x))
})
# 设置Seaborn样式和调色板
sns.set_style("whitegrid")
sns.set_palette("husl")
# 使用Seaborn绘图并显示
sns.lineplot(x='x', y='y', hue='group', data=data)
plt.show()
运行结果:
1.5 Sklearn
- scikit-learn是基于Python语言的机器学习工具
- 简单高效的数据挖掘和数据分析工具
- 可以在各种环境中重复使用
- 建立在Numpy、 SciPy(Scientific Python) 和 matplotlib 上
简化了
机器学习的工作流程,提高了模型的性能和准确性