一、 实训目的 1. 掌握数据分析的流程。 2. 掌握Python在数据分析领域的优势(四个第三方库的再认识) 3. 掌握Anaconda的安装。 二、 实训环境及器材(软件、硬件环境及所需实训材料) Windows操作系统+Anaconda3软件 三、 实训内容及步骤 实训要求: 1、熟悉数据分析的流程与步骤、熟练安装数据分析软件。 易语言多线程编程2、能力点要求:Anaconda3的下载安装和数据分析常用类库的查询 实训步骤与要点 1、 打开htp://www continuum.io/downloads下载Anaconda3 在网页的最下端到适合自己电脑系统的安装软件包。 2、按步骤安装 点击next 点击I Agree接受协议并安装 根据自己的时间情况选择安装,一般为第一个。 在此处选择安装路径,点击next。 再次根据自己的需求选择安装点击install。 安装结束 2、 检查numpy、pandas、matplotlib、scikit-learn等第三方库 打开spyder 在spyder里面分别调用numpy、pandas、matplotlib、scikit-learn库函数 显示"pandas as pd' imported but unused (pyflakes E)等提示 意思是库已经导入但未使用,表明numpy、pandas、matplotlib、scikit-learn库已经安装并且可以使用。 3、 收集汇总以上第三方库中的常用函数与方法(以表格形式进行汇总)。 Numpy函数和使用方法 创建数组对象 | 1、 使用array函数创建一维或多维数组 2、 使用创建数组的函数:arange(),linspace(),logspace() 3、 使用创建函数创建特殊数组:zeros(),eye(),ones(),diag(),full() | 利用random库创建随机数数组 | seed | laravel框架和tp框架的区别确定随机数生成器的种子。 | permutation | 返回一个序列的随机排列或返回一个随机排列的范围。 | shuffle | 对一个序列进行随机排序。 | binomial | 产生二项分布的随机数。 | normal | 产生正态(高斯)分布的随机数。 | beta | 产生beta分布的随机数。 | chisquare | 产生卡方分布的随机数。 | gamma | 产生gamma分布的随机数。 | uniform | 产生在[0,1)中均匀分布的随机数。 | | |
| 创建NumPy矩阵 | python基础知识测试题1、在numpy中,矩阵是ndarray的子类 2、矩阵是继承自Numpy数组对象的二维数组对象。 3、使用mat函数创建矩阵: matr1 = np.mat("1 2 3;4 5 6;7 8 9") 4、使用matrix函数创建矩阵:matr2 = np.matrix([[1,2,3],[4,5,6],[7,8,9]]) 5、若有:(3) arr2=3*arr1 6、使用bmat函数合成矩阵:np.bmat("arr1 arr2; arr1 arr2") | savetxt | 将数组写到某种分隔符隔开的文本文件中。 np.savetxt("../", arr, fmt="%d", delimiter=",") | loadtxt | 把文件加载到一个二维数组中。flash控件手机版下载 np.loadtxt("../",delimiter=",") | genfromtxt | 函数面向的是结构化数组和缺失数据。 np.genfromtxt("../", delimiter = ",") | save | 以二进制的格式保存数据。 np.save("../tmp/save_arr",arr) | load | 从二进制的文件中读取数据。 np.load("../tmp/save_arr.npy") | 删除文件恢复软件免费版下载argsort | 函数返回值为重新排序值的下标。 arr.argsort() | lexsort | 返回值是按照最后一个传入数据排序的。 np.lexsort((a,b,c)) | unique | 可以出数组中的唯一值并返回已排序的结果 | | |
Pandas函数使用方法 读写csv文件 | 写入 df.to_csv(filename) 读取 pd.read_csv(filename,header=0) #保留列属性,header=None不读列属性 | 缺失值处理 | 去掉包含缺失值的行 df.dropna(how=’any’) 对缺失值进行填充 df.fillna(value=5) | 选择行或列 | df.iloc[3] #第四行 df.iloc[:,3] #第四列 df.iloc[3:5,0:2] #第四到六行,第一到三列 df.iloc[[4,5,6],[0,1,2]] #第四到六行,第一到三列 df[] #这是对行进行切片 | 统计 | df.describe() #描述 df.head() #头五行 df.tail() #尾五行 df.T #转置 df.sort(columns=’B’)# 对轴进行排序 df.mean() #对每列求均值 通过axis=0/1 确定行列 | 映射 | df.apply(function) #通过自定义函数,应用于df中 例如:df.apply(lambda x:x.max()-x.min()) #求得每列最大减最小,通过axis=1 进行行操作 | 合并 | pd.concat(list) #list各元素为各个DateFrame 例如 pieces = [df[:3],df[3:6],df[6]];pd.concat(pieces) | | |
Matplotlib函数使用方法 边框简笔画手抄报 matplotlib.pyplot 是matplotlib 的子库 | import matplotlib.pyplot as plt | scatter | 散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征间的统计关系的一种图形。 atplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None, **kwargs) | plot | matplotlib.pyplot.plot(*args, **kwargs) plot函数在官方文档的语法中只要求填入不定长参数 | bar | 直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。 matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs ) | pie | 饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。 matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, ) | boxplot | 箱线图(boxplot)也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。 matplotlib.pyplot.boxplot(x,notch=None, sym=None,vert=None,whis=None, positions=None, widths=None, patch_artist=None,meanline=None, labels=None, … ) | | |
Scikit-learn使用方法 sklearn库的datasets模块集成了部分数据分析的经典数据集,可以使用这些数据集进行数据预处理,建模等操作,熟悉sklearn的数据处理流程和建模流程。 datasets模块常用数据集的加载函数与解释如下表所示。 使用sklearn进行数据预处理会用到sklearn提供的统一接口——转换器(Transformer)。 加载后的数据集可以视为一个字典,几乎所有的sklearn数据集均可以使用data,target,feature_names,DESCR分别获取数据集的数据,标签,特征名称和描述信息。 train_test_split | 根据传入的数据,分别将传入的数据划分为训练集和测试集。 如果传入的是1组数据,那么生成的就是这一组数据随机划分后训练集和测试集,总共2组。如果传入的是2组数据,则生成的训练集和测试集分别2组,总共4组。 sklearn的model_selection模块提供了train_test_split函数,能够对数据集进行拆分,其使用格式如下。 ain_test_split(*arrays, **options) | sklearn | sklearn把相关的功能封装为转换器(transformer)。使用sklearn转换器能够实现对传入的NumPy数组进行标准化处理,归一化处理,二值化处理,PCA降维等操作。 | sklearn聚类 | 聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将他们划分为若干组,划分的原则是组内样本最小化而组间(外部)距离最大化 | | |
5、对以上第三方库的主要功能及优势进行阐述 numpy | Python 科学计算的基础包。 1、快速高效的多维数组对象 ndarray。 2、对数组执行元素级的计算以及直接对数组执行数学运算的函数。 3、读写硬盘上基于数组的数据集的工具。 4、线性代数运算、傅里叶变换,以及随机数生成的功能。 5、将 C、C++、Fortran 代码集成到 Python 的工具。 | pandas | 数据分析核心库 1、提供了一系列能够快速、便捷地处理结构化数据的数据结构和函数。 2、高性能的数组计算功能以及电子表格和关系型数据库(如 SQL)灵活的数据处理功能。 3、复杂精细的索引功能,以便便捷地完成重塑、切片和切块、聚合及选取数据子集等操作。 | matplotlib | 绘制数据图表的 Python 库 1、Python的2D绘图库,非常适合创建出版物上用的图表。 2、操作比较容易,只需几行代码即可生成直方图、功率谱图、条形图、错误图和散点图等图形。 3、提供了pylab的模块,其中包括了NumPy和pyplot中许多常用的函数,方便用户快速进行计算和绘图。 4、交互式的数据绘图环境,绘制的图表也是交互式的。 | scikit-learn | 数据挖掘和数据分析工具 1、简单有效,可以供用户在各种环境下重复使用。 2、封装了一些常用的算法方法。 3、基本模块主要有数据预处理、模型选择、分类、聚类、数据降维和回归 6 个,在数据量不大的情况下,scikit-learn可以解决大部分问题。 | | |
6、详述数据分析概念以及具体流程+ 广义的数据分析包括狭义数据分析和数据挖掘。 狭义的数据分析是指根据分析目的,采用对比分析、分组分析、交叉分析和回归分析等分析方法,对收集来的数据进行处理与分析,提取有价值的信息,发挥数据的作用,得到一个特征统计量结果的过程。 数据挖掘则是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过应用聚类、分类、回归和关联规则等技术,挖掘潜在价值的过程。 数据分析的流程 典型的数据分析的流程 需求分析:数据分析中的需求分析也是数据分析环节的第一步和最重要的步骤之一,决定了后续的分析的方向、方法。 数据获取:数据是数据分析工作的基础,是指根据需求分析的结果提取,收集数据。 数据预处理:数据预处理是指对数据进行数据合并,数据清洗,数据变换和数据标准化,数据变换后使得整体数据变为干净整齐,可以直接用于分析建模这一过程的总称。 分析与建模:分析与建模是指通过对比分析、分组分析、交叉分析、回归分析等分析方法和聚类、分类、关联规则、智能推荐等模型与算法发现数据中的有价值信息,并得出结论的过程。 模型评价与优化:模型评价是指对已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。 部署:部署是指将通过了正式应用数据分析结果与结论应用至实际生产系统的过程。 四、 实训心得 在总结和归纳中掌握和巩固知识 五、 教师评语 |
发表评论