数据是采用某种计量尺度对事物进行计量的结果,采用不同的计量尺度会得到不同类型的数据,通常按数据的手机途径可以将数据进行如下分类:
横截面数据(也称截面数据,cross-section data)
横截面数据是指对变量在某一时点上收集的数据的集合,反应在相同或近似相同的时间点上收集的数据描述现象在某一时刻的变化情况。
时间序列数据(也称动态数列,time series data)
时间序列数据是按照一定时间间隔对某一变量在不同时间的取值进行观测得到的一组数据,反应在不同时间上收集到的数据描述现象随时间变化的情况。
数据收集有一定的格式,当对一个观察指标测量了每一观察单位的数据时,通常以向量的形式展现X:x1、x2、……xn。
当对每一观察单位测量了多个指标时,通常以双向表的矩阵形式展现。
不同领域对该数据的观察单位和指标的叫法不同:数学上称他们为行(row)和列(column)的二维数组或矩阵。统计学上称他们叫做观测(observation)和变量(variable)的数据集,数据库中称他们记录(record)和字段(field)的数据表,人工智能中称他们为示例(example)和属性(attribute)的数据集。
这类数据通常是一个个单独的数据变量,都可以单独拿来进行数据分析。
这类数据也称横截面数据,主要是用来研究多个变量间的关系,包括综合分析、分类分析等。
时序数据是一类比较特殊的数据,也称纵向数据,它对数据的格式有一定的要求,特别是时间序列数据,须注意时间序列数据的输入格式。
以上数据集,点这里可以获取,后面也会用得到。
数据管理是利用计算机硬件和软件技术对数据有效的收集、存储、处理和应用的过程。对于一般的数据分析而言,电子表格软件已经足以胜任分析所需要的数据管理。常用的电子表格软件有微软Office的Excel表格软件和金山Office的WPS软件。
如果仅做一般数据管理,数据量不是特别大,而且要求系统免费、跨平台,那么首选的数据管理软件应该是WPS软件。
数据在这里——>以上数据集,点这里可以获取,后面也会用得到。,也可以登录blog.leanote.com/PyDm下载数据。
当分析的数据量很大时,采用电子表格类软件有很大问题,须采用数据库来管理数据表格。
能做数据分析的软件有很多,如电子表格、SAS、SPSS、R、Python、Stata、Matlab、Eviews等。
Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件,源代码和解释器CPython遵循GPL (GNU General PublicLicense)协议。 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富而强大的包,它常被昵称为“胶水语言”,能够把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如, 3D游戏中的图形渲染模块性能要求特别高,就可以用C/C++重写,然后封装为Python可以调用的扩展包。需要注意的是,在使用扩展包时可能需要考虑平台问题,某些扩展包可能不提供跨平台的实现。
由于Python语言的简洁性、易读性及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如,卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,如著名的计算机视觉包OpenCV.
三维可视化包VTK、医学图像处理包ITK,而Python专用的科学计算扩展包就更多了,如以下三个十分经典的科学计算扩展包: numpy, scipy和Matplotib,它们分别为Python提供了快速数组处理、数值运算及绘图功能。因此, Python语言及其众多的扩展包所构称的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
Python是一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,其设计具有很强的可读性。
① Python是解释型语言:这意味着开发过程中没有了编译这个环节。
② Python是交互式语言:这意味着可以在一个Python提示符下直接互动执行写程序。
③ Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象中的编程技术。
④ Python是初学者的语言: Python对初级程序员而言,是一种友好易学的语言,它支持广泛的应用程序开发-从简单的文字处理到www浏览器再到游戏。
具体而言, Python有如下一些特点。
Python最大也是其成为最流行的数据分析软件的特点就是,它包含大量的扩展包并拥有方便的二次开发功能。 Python的扩展包包罗万象,它所能完成的数据统计模型已经超出了任何其他商业统计软件。笔者做了一个统计,截至2019年1月, https://www.python.org/ 所列的扩展包达到165797个之多(包含几十万个数据分析方法),除进行各种程序开发外,可完全满足进行数据分析之用。
Python是一种强大的面向对象的编程语言,这样的编程环境需要使用者不仅熟悉各种命令的操作,还须熟悉DOS编程环境,而且所有命令执行完即进入新的界面,这给那些不具备编程经验或对统计方法掌握不够好的使用者造成了极大的困难。
采用基于Anaconda的Jupyter平台进行数据分析。
随着网络技术的不断普及,建立基于大数据和云计算的Web应用平台势在必行。Jupyter项目旨在开发跨几十种语言的开源软件、开放标准和用于交互式计算的服务。
是一款开放源代码的Web应用程序,允许创建和共享包含实时代码、方程式、可视化和叙述文本的文档。用途包括数据线清晰和转换、数值模拟、统计建模、数据可视化、机器学习等。
下载ANACONDA 载里面找到Juoyter Notebook,使用非常直观和方便。
输入下面代码可以上传数据:
import pandas as pd
data=pd.read_excel('d:PyDm_data.xlsx',encoding='utf-8'):
data
注意:对于文本数据,要留心数据的编码(encoding)格式!如果有中文名,要用“utf-8‘。
Jupyter Notebook有两种键盘输入模式。
①编辑模式,允许往单元中输入代码或文本;这时的单元框线是绿色的。
②命令模式,通过键盘输入运行程序命令;这时的单元框线是灰色的。
这些快捷键也可在下面的Jupyter Lab中使用。
Jupyter Lab是一个名副其实的IDE,且是一个基于网页的IDE(保留了全部的Notebook 特性).
如果不想安装庞大的Python和Jupyter Notebook,而只是想简单使用一下,那么可用Jupyter社区提供的浏览器版Jupyter Lab,单击“试试Jupyter Lab"即可使用,但限于网速,在线运行速度稍慢,建议使用本地安装版。
进入后的界面与平常使用的编程环境差别不大。