本阶段工作内容
一、了解甜橙金融杯大数据竞赛并报名,下载数据。
二、配置本机环境。
因为使用的是Mac系统,所以配置环境相对简单,使用的是python3,以及使用pip3下载实训所需要用到的各种包。使用以下命令即可
sudo pip3 install numpy scipy pandas scikit-learn statsmodels matplotlib xgboost jupyter
三、学习数据挖掘涉及的主要python包。
1. numpy
numpy提供了大量的库函数和操作,主要用于对多维数组执行计算,以及对图像的处理和其他数学运算。
基本操作
- 导入numpy。
import numpy as np
- 声明数组/矩阵,注意,数组下标从0开始,和Matlab从1开始不一样。
array = np.array([1,2,3,4])
array = np.array([1,2,3,4],[1,2,3,4])
array = np.arange(10)
从0到9的数组。
array = np.array(0, 10, 2)
从0开始,每个元素间隔2,直到10(不包括10)
array = np.linspace(0, 10, 5)
0到10的5个等分数据,包括0和10。
- 创建全0数组,全1数组,随机数组,长度为10。
array = np.zeros((10))
array = np.ones((10))
array = np.random.random((10))%注意是两个random,范围为0到1.
- 创建全0矩阵,全1矩阵,随机矩阵,长度为10*10。
array = np.zeros((10,10))
array = np.ones((10,10))
array = np.random.random((10,10))
- 输出第1行数据
array[0,:]
- 矩阵±*/操作
array1 +-*/ array2
,这是对元素进行操作,即元素是一对一进行±*/的。
- 指数
array**2
,这是对元素进行操作,即元素是一对一操作。
- 矩阵乘法
array1.dot(array2)
- 矩阵重塑,将一维矩阵转化为4*5的矩阵。
array = np.arange(20);array = array.reshape(4,5)
- 矩阵信息
array.size
矩阵的元素个数
array.shape
矩阵的大小
进阶操作
- 条件判断
- 三木运算
- 统计运算amax,amin,mean,std(方差)。其中参数axis=0为列,axis=1为行。
np.amax(array, axis=0)
-
矩阵拼接
- 垂直拼接
np.vstack(array1,array2)
- 水平拼接
np.hstack(array1,array2)
- 垂直拼接
-
读取数据
np.genfromtxt('./xx.csv', delimiter=' ')
,第一个参数为路径,第二个参数为分隔符- 如果数值据有无法识别的值出现,会以nan显示,nan相当于
np.nan
,为float类型.
-
更多见学习资料链接
2. pandas
pandas 是基于numpy的一个工具包,主要是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
import numpy as np
import pandas as pd
数据结构
-
序列Series,类似于numpy中的一维数组,可以通过索引获取数据
-
Series = pd.Series(array)
-
series = {'a':1,'b':2,'c':3}
-
series = pd.Series(array, index)
,index为索引,array为value。与第一句区别为第一句索引默认0…1…n-1 -
通过DataFrame的行列来创建序列。
-
-
数据框DataFrame,数据以表格的形式存储,有行索引和列索引
series = {'one':{'a':1,'b':2,'c':3,'d':4},two':{'a':5,'b':6,'c':7,'d':8},three':{'a':9,'b':10,'c':11,'d':12}}
dataframe = pd.DataFrame(series)
此时`dataframe就是一个行索引为a,b,c,d。列索引为one, two,three的4*3表格。
3. scipy
scipy是基于numpy上的,它提供了许多的操作numpy的数组的函数,是一款方便、易于使用、专为科学和工程设计的python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等。
scipy各子模块,表格来自博客https://blog.csdn.net/q583501947/article/details/76735870
模块名 | 功能 |
---|---|
scipy.cluster | 向量量化 |
scipy.constants | 数学常量 |
scipy.fftpack | 快速傅里叶变换 |
scipy.integrate | 积分 |
scipy.interpolate | 插值 |
scipy.io | 数据输入输出 |
scipy.linalg | 线性代数 |
scipy.ndimage | N维图像 |
scipy.odr | 正交距离回归 |
scipy.optimize | 优化算法 |
scipy.signal | 信号处理 |
scipy.sparse | 稀疏矩阵 |
scipy.spatial | 空间数据结构和算法 |
scipy.special | 特殊数学函数 |
scipy.stats | 统计函数 |
4. scikit-learn
SciKit-learn的简称是SKlearn,是一个python库,基于 Numpy 与 SciPy 两大著名工具包,专门用于机器学习的模块,包含了分类,回归,无监督,数据降维,数据预处理等常见的大部分机器学习方法。
官方结构图:
5. statsmodels
statsmodels是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化。statsmodels包含更多的“经典”频率学派统计方法,包含的一些模型如下:
- 线性模型,广义线性模型和鲁棒线性模型
- 线性混合效应模型
- 方差分析(ANOVA)方法
- 时间序列过程和状态空间模型
- 广义的矩量法
6. matplotlib
matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。因为之前经常使用的是Matlab画图,差距不大,所以只是简单看了一遍。
7. xgboost
8. jupyter
Jupyter Notebooks 是一款开源的网络应用,我们可以将其用于创建和共享代码与文档。其提供了一个环境,你无需离开这个环境,就可以在其中编写你的代码、运行代码、查看输出、可视化数据并查看结果。
安装jupyter需要将pip3更新到最新版本。
pip3 install --upgrade pip
使用命令jupyter notebook
,Jupyter Notebooks 会在默认浏览器打开,地址是:http://localhost:8888/tree
以下为成功打开tiancheng_base.ipynb文件