数据分析基础(1)
为了让刚开始学习的朋友对数据分析有一个清晰的整体认识,因此笔者在此对数分进行一个较为详细的介绍有助于大家更好的在宏观层面进行理解,避免在后续学习中产生迷茫。
数据分析的概念
定义:数据分析是指用适当的分析方法对收集来的大量数据进行分析,提取有用信息和形成结论,对数据加以详细研究和概括总结的过程。
应用层面:随着信息技术的高速发展,企业生产、收集、存储和处理数据的能力大大提高,同时数据量也与日俱增。把这些繁杂的数据通过数据分析方法进行提炼,以此研究出数据的发展规律和预测趋势走向,进而帮助企业管理层做出决策。就业面非常广泛,具有门槛低,机遇多的优点。
2、数据分析的流程
数据分析是一种解决问题的过程和方法,主要的步骤有需求分析、数据获取、数据预处理、分析建模、模型评价与优化、部署
(1)需求分析
数据分析中的需求分析是数据分析环节中的第一步,也是非常重要的一步,决定了后续的分析方法和方向。主要内容是根据业务、生产和财务等部门的需要,结合现有的数据情况,提出数据分析需求的整体分析方向、分析内容,最终和需求方达成一致。
(2)数据获取
数据获取是数据分析工作的基础,是指根据需求分析的结果提取、收集数据。数据获取主要有两种方式:网络爬虫获取和本地获取。网络爬虫获取指的是通过Python编写爬虫程序合法获取互联网中的各种文字、语音、图片和视频等信息(后续笔者也会更新爬虫系列博客);本地获取指的是通过计算机工具获取存储在本地数据库中的生产、营销和财务等系统的历史数据和实时数据。
(3)数据预处理
数据预处理是指对数据进行数据合并、数据清洗、数据标准化和数据变换,并直接用于分析建模的这一过程的总称。其中,数据合并可以将多张互相关联的表格合并为一张;数据清洗可以去掉重复、缺失、异常、不一致的数据;数据标准化可以去除特征间的量纲差异;数据交换则可以通过离散化、哑变量处理等技术满足后期分析与建模的数据要求。在数据分析过程中,数据预处理的各个过程互相交叉,并没有固定的先后顺序。
(4)分析建模
分析建模是指通过对比分析、分组分析、交叉分析、回归分析等分析方法,以及聚类模型、分类模型、关联规则、智能推荐等模型和算法,发现数据中的有价值信息,并得出结论的过程。
(5)模型评价与优化
模型评价是指对于已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。模型的优化则是指模型性能在经过模型评价后已经达到了要求,但在实际生产环境应用过程中,发现模型的性能并不理想,继而对模型进行重构与优化的过程。
(6)部署
部署是指将数据分析结果与结论应用至实际生产系统的过程。根据需求的不同,部署阶段可以是一份包含了现状具体整改措施的数据分析报告,也可以是将模型部署在整个生产系统的解决方案。在多数项目中,数据分析员提供的是一份数据分析报告或者一套解决方案,实际执行与部署的是需求方。
数据分析的实现
想要掌握数据分析,首先得从NumPy和pandas开始,这是python实现数据分析最常用的两个库。
NumPy
NumPy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等。
N维数组
定义:是一个多维数组,描述了相同类型数据的集合。最常用的两个属性分别是数据类型和维度。
数据类型:数组中存储的元素类型,可以是整型(int)、浮点型(float)、布尔型(bool)等。需要注意的是,NumPy数组中的所有元素类型必须是一致的。这与python的元组列表都不同,需要特别注意一下。
维度:[…]表示一维数组,[[…]]表示二维数组,以此类推,[[[…]]]表示三维数组,三维数组中的每个元素都是一个二维数组。
numpy是第三方库需要先下载:
终端输入
pip install numpy
如果下载很慢就换源,笔者推荐清华源
array函数:
array()的参数为任意序列性对象,也就是列表、元组、数组等数据结构都可以作为参数传入,函数会返回数组。
import numpy as nparrone = np.array([[0.2,0.9],[0.5,0.1],[0.1,0.7]])
arrtwo = np.array([[10,5],[20,5],[1,3]])
print(arrone+2)
print(arrone+arrtwo)
运行结果:
[[2.2 2.9]
[2.5 2.1]
[2.1 2.7]]
[[10.2 5.9]
[20.5 5.1]
[ 1.1 3.7]]
1.数组打印出来后,数组之间的元素是用空格分隔
2.当数组和数字进行计算的时候,Numpy会将该数字的计算过程应用到数组的所用元素上面。
3.当形状相同的数组进行计算时,运算也是在相应的元素上进行。
pandas
pandas第三方库,需要安装,终端输入
pip install pandas
Series(序列)
定义:Series,中文叫做序列,pandas模块的一种数据类型,是一个一维的、带索引(index)的数组对象。(可以类比一下字典或列表,只是注意索引和值的对应方式不同)
注意:Series的值可以是多重数据类型:字符串、整型、浮点型、布尔型。
一个Series在print输出时,值的数据类型会在底部,用dtype表示出来。
一个Series里所有的值,数据类型都是一样的。
访问
1.位置索引访问。这种访问方式和列表相同,是基于元素自身的下标来进行访问。
2.索引标签访问。这种访问方式和字典相同,把index中的索引标签当做字典的key,而把Series序列的值当做字典的value。
import pandas as pdinfo = pd.Series([80855,77388,68024,47251,40471],index=['GD','JS','SD','ZJ','HN'])print(info.dtype) #输出了info中的数据类型
print(info.values) #输出了info中的值values
print(info.index) #输出了变量info的索引index
运行结果:
1.dtype
访问Series对象的dtype属性,可以返回Series对象的数据类型
2.values
访问Series对象的values属性,会以数组的形式返回Series对象的值values
3.index
访问Series对象的index属性,可以返回这个Series的索引index
小孩眺望远方,成人思念故乡。我们从挣扎着松绑到思念的投降,大抵这就是成长。