Python数据分析与可视化概述

黎明之道
• 阅读 1263

数据分析与可视化概述

一、数据、信息与数据分析

  • 数据:是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。
  • 数据是信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等
  • 数据聚焦于数据的采集、清理、预处理、分析和挖掘,图形聚焦于解决对光学图像进行接收、提取信息、加工变换、模式识别及存储显示,可视化聚焦于解决将数据转换成图形,并进行交互处理。
  • 信息:是数据的内涵,信息是加载于数据之上,对数据作具有含义的解释。
  • 数据和信息是不可分离的,信息依赖数据来表达,数据则生动具体表达出信息。
    • 数据是符号,是物理性的,信息是对数据进行加工处理之后得到、并对决策产生影响的数据,是逻辑性和观念性的;
    • 数据是信息的表现形式,信息是数据有意义的表示。数据是信息的表达、载体,信息是数据的内涵,是形与质的关系。
    • 数据本身没有意义,数据只有对实体行为产生影响时才成为信息。
  • 数据分析:是指用适当的统计分析方法对收集来的大量数据进行分析,为提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
  • 数据分析就是针对搜集来的数据运用基础探索、统计分析、深层挖掘等方法,发现数据中有用的信息和未知的规律与模式,进而为下一步的业务决策提供理论与实践依据。所以广义的数据分析就包含 了数据挖掘的部分

数据挖掘与数据分析:

  • 数据分析是指根据分析目的,采用对比分析、分组分析、交叉分析和回归分析等分析方法,对收集来的数据进行处理与分析,提取有价值的信息,发挥数据的作用,得到一个特征统计量结果的过程。
  • 数据挖掘则是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过应用聚类、分类、回归和关联规则等技术,挖掘潜在价值的过程。

Python数据分析与可视化概述
二者区别
Python数据分析与可视化概述
数据分析的流程:
Python数据分析与可视化概述

  • 需求分析:数据分析中的需求分析也是数据分析环节的第一步和最重要的步骤之一,决定了后续的分析的方向、方法。
  • 数据获取:数据是数据分析工作的基础,是指根据需求分析的结果提取,收集数据。
  • 数据预处理:数据预处理是指对数据进行数据合并,数据清洗,数据变换和数据标准化,数据变换后使得整体数据变为干净整齐,可以直接用于分析建模这一过程的总称。
  • 分析与建模:分析与建模是指通过对比分析、分组分析、交叉分析、回归分析等分析方法和聚类、分类、关联规则、智能推荐等模型与算法发现数据中的有价值信息,并得出结论的过程。
  • 模型评价与优化:模型评价是指对已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。
  • 部署:部署是指将通过了正式应用数据分析结果与结论应用至实际生产系统的过程。

二、数据可视化

  • 数据可视化:是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为“一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量”。
  • 数据可视化主要是借助于图形化手段,清晰有效地传达与沟通信息。

数据:聚焦于解决数据的采集、清理、预处理、分析和挖掘

图形:聚焦于解决对光学图像进行接收、提取信息、加工变换、模式识别及存储显示

可视化:聚焦于解决将数据转换成图形,并进行交互处理

数据可视化方法:

  • 面积&尺寸可视化
  • 颜色可视化
  • 图形可视化
  • 概念可视化

注意:

  • 做数据可视化时,几种方法经常是混合用的,尤其是做一些复杂图形和多维度数据的展示时。
  • 做出的可视化图表一定要易于理解,在显性化的基础上越美观越好,切忌华而不实。
  • 数据可视化要根据数据的特性,如时间和空间信息等,找到合适的可视化方式,将数据用直观地展现出来,以帮助人们理解数据,同时找出包含在海量数据中的规律或者信息。

三、数据分析与可视化常用工具

1.Microsoft Excel
2.R语言
3.Python语言
4.JavaScript
5.PHP

四、为何选用Python

Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言
Python语言是数据分析师的首选数据分析语言,也是智能硬件的首选语言
Python数据分析与可视化概述
优点:

1.简单易学
Python是一种代表简单主义思想的语言,它有极简单的语法,极易上手。

2.集解释性与编译性于一体
Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序,但是需要解释器,它也具有编译执行的特性。

3.面向对象编程
Python 即支持面向过程的编程也支持面向对象的编程。与其他主要的语言如C++ 、Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

4.可扩展性和可嵌入性
可以把部分程序用C或C++编写,然后在Python程序中使用它们,也可以把Python嵌入到C/C++ 程序中,提供脚本功能。

5.程序的可移植性
绝大多数的的Python程序不做任何改变即可在主流计算机平台上运行。

6.免费、开源
可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。

Python数据分析与可视化概述

缺点:
Python的唯一缺点是与C和C++相比执行的效率还不够快,因为Python没有将代码编译成底层的二进制代码;

应用举例:
使用turtle画一只乌龟:

#!python 

"""画一个小乌龟"""

import turtle as t;

t.pensize(2)
t.hideturtle()
t.colormode(255)
t.color((0,0,0),"Green")
t.setup(500,500)
t.speed(5)

t.penup()
t.goto(0,-100)
t.pendown()
t.circle(100)

t.penup()
t.goto(-20,35)
t.pendown()
t.begin_fill()
t.forward(40)
t.seth(-60)
t.forward(40)
t.seth(-120)
t.forward(40)
t.seth(-180)
t.forward(40)
t.seth(120)
t.forward(40)
t.seth(60)
t.forward(40)
t.end_fill()

t.seth(120)
t.color((0,0,0),(29,184,130))

for i in range(6):
    t.begin_fill()
    t.forward(60)
    t.right(90)
    t.circle(-100,60)
    t.right(90)
    t.forward(60)
    t.right(180)
    t.end_fill()

t.penup()
t.goto(-15,100)
t.seth(90)
t.pendown()
t.forward(15)
t.circle(-15,180)
t.forward(15)

for i in range(4):
    t.penup()
    t.goto(0,0)
    if i==0:
        t.seth(35);
    if i==1:
        t.seth(-25)
    if i==2:
        t.seth(-145)
    if i==3:
        t.seth(-205)
    t.forward(100)
    t.right(5)
    t.pendown()
    t.forward(10)
    t.circle(-10,180)
    t.forward(10)

t.penup()
t.goto(10,-100)
t.seth(-90)
t.pendown()
t.forward(10)
t.circle(-30,60)
t.right(150)
t.circle(30,60)
t.goto(-10,-100) 

Python数据分析与可视化概述

五、Python常用类库

1. Numpy
NumPy软件包是Python生态系统中数据分析、机器学习和科学计算的主力军。它极大地简化了向量和矩阵的操作处理。
除了能对数值数据进行切片(slice)和切块(dice)外,使用NumPy还能为处理和调试上述库中的高级实例带来极大便利。
一般被很多大型金融公司使用,以及核心的科学计算组织如Lawrence Livermore、NASA用其处理一些本来使用C++、Fortran或Matlab等所做的任务。

2. SciPy
SciPy(http://scipy.org)是基于NumPy开发的高级模块,依赖于NumPy,提供了许多数学算法和函数的实现,可便捷快速地解决科学计算中的一些标准问题,例如数值积分和微分方程求解、最优化、甚至包括信号处理等。

作为标准科学计算程序库, SciPy它是Python科学计算程序的核心包,包含了科学计算中常见问题的各个功能模块,不同子模块适用于不同的应用。

3. Pandas
Pandas提供了大量快速便捷处理数据的函数和方法。它是使Python成为强大而高效的数据分析环境的重要因素之一。
Pandas中主要的数据结构有Series、DataFrame和Panel。其中Series是一维数组,与NumPy中的一维array以及Python基本的数据结构List类似;DataFrame是二维的表格型数据结构,可以将DataFrame理解为Series的容器; Panel是三维的数组,可看作为DataFrame的容器。

4. Matplotlib
Matplotlib是Python 的绘图库,是用于生成出版质量级别图形的桌面绘图包,让用户很轻松地将数据图形化,同时还提供多样化的输出格式。

5. Seaborn
Seaborn在Matplotlib基础上提供了一个绘制统计图形的高级接口,为数据的可视化分析工作提供了极大的方便,使得绘图更加容易。
用Matplotlib最大的困难是其默认的各种参数,而Seaborn则完全避免了这一问题。一般来说,Seaborn能满足数据分析90%的绘图需求。

6. Scikit-learn
Scikit-learn是专门面向机器学习的Python开源框架,它实现了各种成熟的算法,容易安装和使用。
Scikit-learn的基本功能有分类、回归、聚类、数据降维、模型选择和数据预处理六大部分。

六、 数据科学计算平台—Anaconda

Anaconda是一个集成的Python数据科学环境,简单的说,Anaconda除了有Python外,还安装了180多个用于数据分析的第三方库,而且可以使用conda命令安装第三方库和创建多个环境。相对于只安装Python而言,避免了安装第三方库的麻烦。
网站:
https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

Jupyter Notebook的使用:
Jupyter Notebook(Julia+Python+R = Jupyter)基于Web技术的交互式计算文档格式,支持Markdown和Latex语法,支持代码运行、文本输入、数学公式编辑、内嵌式画图和其他如图片文件的插入,是一个对代码友好的交互式笔记本。
Python数据分析与可视化概述

  • Files 基本上列出了所有的文件,
  • Running 显示了当前已经打开的终端和Notebooks,
  • Clusters 由 IPython parallel 包提供,用于并行计算。
  • 若要创建新的Notebook,只需单击页面右上角的New按钮,在下拉选项中选择python3,即可得到一个空的notebook界面
    Python数据分析与可视化概述
  • 在编辑区可以看到一个个单元(cell)。如图所示,每个cell以“In[ ]”开头,可以输入正确的Python代码并执行。
  • 例如,输入"python " + “program”,然后按“Shift+Enter”,代码将被运行后,编辑状态切换到新的cell

Jupyter notebook中的常用快捷方式:
Python数据分析与可视化概述

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
2年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这