目录
1. 写在前面
主要是阶段性框架总结
1.1 AI 之路:
数据分析——机器学习——深度学习——CV/NLP
1.2 工具/技能:
Python、NumPy、Pandas、Matplotlib——Scikit-learn;LR、SVM…——TensorFlow、Keras、Pytorch;CNN、RNN…
2. 数据分析
使用 NumPy 或者 Pandas 进行数据分析,后者更为强大和专业,而且有自己的 Matplotlib 的接口可用于可视化。
2.1 数据分析的流程
- 提出问题
- 理解数据
- 数据清洗
- 构建模型
- 数据可视化
2.2 数据的基本操作方法
以Pandas操作二维以上的数据为例 ,总结操作数据的一些方法。
2.2.1 Pandas 概览
- Pandas 的方法链:
绝大数的 Pandas 方法都是返回一个 DataFrame 对象,以便被后续的 Pandas 方法进行使用。 - 创建 DataFrame :
传入字典生成:给定每列的值
传入数组生成:给定每行的值
2.2.2 使用Pandas 操作数据的核心
那么多操作(数据)的方法,总结起来其实就两步:
先选择数据,再进行函数操作。
(1) 选择数据
包括对行数据、列数据的选择/过滤。
- 按行选择/过滤
- 显示
df.head(n)
df.tail(n) - 随机选取
df.sample(frac=0.5)
df.sample(n=10) - 按行索引(切片)选取
df.iloc[0:2] 选取1-2行 - 按行序号(切片)选取
df.loc[0:2] 可能会报错(如果行没有需要0)
df.loc[1:2] 选取1-2行 - 按照排序 选取特定值的前/后 n 个
df.nlargeest(n, ‘value’)
df.nsmallest(n, ‘value’) - 依据逻辑规则选取
df.[df.Length>7]
- 删除重复的行
df.drop_duplicates()
- 按列选择/过滤
- 通过列标签(列名)选取
选取一列
df[‘width’] or df.width
选取多列
df[[‘width’, ‘length’, ‘species’]] - 使用切片选取
使用列索引切片选取
df.iloc[:, ‘x2’ : ‘x4’]
使用列标签名(列名)选取
df.loc[:, [1, 2, 5]]
df.loc[:, 1:3 ] - 通过正则表达式过滤
df.filter(regex=‘regex’)
- 通过逻辑规则过滤
df.loc[df[‘a’]>10, [‘a’, ‘c’]]
(2) 操作数据
包括对于行数据、列数据以及整体数据的函数操作。
-
描述统计数据
整体描述
df.shape()
df.info()
df.describe()
len(df)
df.[‘W’].values_counts()
df.[‘W’].unique()具体统计
sum()
count()
median()
min()
max()
mean()
var()
std() -
修改数据
增删改查
df.assign() 新增列分组重组
df.groupby() 将一个 df 进行分组pd.merge() 合并不同的 df 数据
pd.melt() 将列名转换为列数据/将列名转换为列数据/Gather columns into rows
df.pivot() 与pd.melt() 互为逆操作pd.concat() 将不同 df 按/行进行合并
-
功能函数
apply(function)
df.dropna()
df.fillna(value)
df.drop()
agg(founction)
df.sort_values(‘mpg’)
df.sort_index()
df.reset_index() 将行索引变为列数据
df.rename() -
可视化函数
df.plot.hist()
df.plot.scatter()
2.2.2 数据详解
- 数据类型
- 。。。
3. 写在最后
数据分析是机器学习的基础。
附上资料以便复习