[超详细高达5000字]一篇带你玩转数据分析与数据可视化

✅作者简介:大家好,我是Philosophy7?让我们一起共同进步吧!🏆
📃个人主页:Philosophy7的csdn博客
🔥系列专栏:Python程序设计现代方法
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博>主哦🤞

文章目录

[超详细高达5000字]一篇带你玩转数据分析与数据可视化

; 一、数据分析

⭐前言:

该章节篇幅略长,望小主耐心阅读
学习目标:

  • 了解什么是数据分析?

  • 掌握numpy模块,熟悉使用numpy数组进行科学计算

  • 掌握matplotlib模块,熟练使用matplotlib绘制图表
  • 熟悉Pandas模块,熟练使用pandas处理数据

随着互联网的不断发展,计算机的技术也不断的更新迭代,信息已经积累到一个引发变革的程度,世界上的数据量不断的增大,以指数函数的形式爆炸式增长,驱使人们进入一个大数据时代。在大数据环境中,有许多冗余的数据,这个时候就需要进行对数据的一个分析,挖掘出有价值的信息变得愈发重要,数据分析技术应运而生。
数据分析是Python的一个重要发展方向,之所以选择用Python去进行数据分析,主要是依赖于高质量的第三方模块,常用的就有:

  • numpy
  • matplotlib
  • pandas(后续讲解)

本次将介绍这些优秀的数据分析工具

1、数据分析概述

数据分析指使用适当的统计分析方法对收集来的大量数据进行分析,从中提取有用的信息形成结论。

数据分析一般分为以下几步:

  1. 明确分析的目的和思路
  2. 分析目标之前,需要明确几个问题:
    • 数据对象是什么?要解决什么样的业务问题?其次需要对项目的深刻理解
    • 整理出完整的分析框架和思路
  3. 数据收集
  4. 按照确定的框架和思路,有目的地从多个渠道获取结构化或非结构化数据
  5. 数据处理
  6. 数据处理指的是对收集来的数据进行清晰、整理和假工,保证数据的质量,是数据分析前不可少的阶段。
  7. 数据分析
  8. 数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从中发现因果关系、内部联系和业务规律,为目标提供决策参考的过程。
  9. 数据可视化
  10. 以自然文字为形式表达出来的数据,自然远不如图表来的清晰明确。所以,一般情况下数据以图表的形式进行呈现,常见的图标类型就有:
    • 折线图
    • 条形图
    • 柱形图
    • 饼图等
  11. 借用图表这种技术手段,可以更直观的呈现数据。

2、数据分析的常用工具

Python本身的数据分析功能并不强,所以借助于第三方的模块来增强它的功能。

  • numpy
  • matplotlib
  • pandas

下面让我们一一介绍这三款数据分析工具的优势以及发展历程

①numpy

一款实现高性能 科学计算数据分析的基础模块,它的前身是由Jim Hugunin开发的numeric和numarray,2005年Travis Oliphant将numarray的功能集成到numeric中创建了numpy,numpy自此诞生了。由于numpy是开源的、强大的特点,它得到了广泛的应用,也得到许多开发者的贡献和支持。
numpy模块中包含一个 ndarry对象,该对象是一个具有矢量计算和复杂广播能力的多维数组,不适用循环即可实现对整个数组的快速运算。此外,numpy中还提供了其他的模块,可以实现线性代数、随机数生成以及傅里叶变换等功能。

②matplotlib

matplotlib是由John D.Hunter开发的一款强大的Python数据可视化绘图模块。Hunter从事数据分析与可视化的工作多年,他一直使用的是Matlab工具编写程序。随着程序难度越来越大,Hunter发现Matlab暴露出很多的缺点,例如: 数据库交互、复杂的数据结构等
于是Hunter决定使用Python语言编写一个数据可视化的模块,弥补Matlab的缺点,所以matplotlib自此诞生。
matplotlib源于美国的MathWorks公司出品的商业数学软件Matlab,但是又与他不同,主要有以下几个优点:

  • 开源免费的
  • matplotlib属于Python的扩展模块,继承了Python面向对象、易读、可维护性好等特点
  • matplotlib可以借助于Python丰富的第三方模块嵌入到用户界面应用程序,或嵌入到网页中。

③pandas

pandas是一个居于numpy的数据分析模块,它最初由AQR Capital Management于2008年4月开发,并于2009年年底发行开源版本,目前专注于Python数据包开发的PyData团队继续开发和维护。
pandas开发之处被作为金融界的数据分析工具,之后又被广泛应用到了学术和其他商用领域,包括神经科学、经济学、统计学、广告、网络分析等。
pandas中纳入了大量的库和标准数据模型。pandas有以下特点:

  • 包含一个快速高效、具有默认和自定义索引的DataForm对象
  • 支持多种格式文件的读取和写入
  • 智能处理数据对齐和缺失数据
  • 自由删除或插入列
  • 按照数据分组进行聚合和交换
  • 高性能的数据合并和连接
  • 生成可视化图表
  • 时间序列功能

matplotlib是最出色的绘图库,它可以于numpy一起使用实现数据可视化。

pandas建立于numpy之上,功能十分强大,不仅可以灵活地处理数据,而且可以实现数据可视化。这些模块需要安装

这里的IDE我的是: PyCharm

点击File-->settings-->Project-->Python Interpreter

[超详细高达5000字]一篇带你玩转数据分析与数据可视化

或在终端界面输入命令行:

pip版本过低无法下载 更新pip

python -m pip install --upgrade pip

python -m pip install --user numpy matplotlib pandas

; 3.科学计算

numpy之数组对象ndarray

首先介绍numpy中包含一个多维数组对象,也就是ndarray对象,该对象具有矢量算术能力和复杂的广播能力,常用于科学计算。
ndarray对象中的元素可以通过索引访问,索引从0开始。
ndarray对象的创建有很多种方式,首先介绍该对象有哪些函数

函数说明np.array(object)利用Python中列表或元组创建数组np.zeros((m,n))创建一个m行,n列且元素均为0的数组np.ones((m,n))创建一个m行,n列且元素均为1的数组np.empty((m,n))创建一个m行,n列且不包含初始项的数组np.arange(x,y,i)创建一个由x到y且步长为i的数组np.linspace(x,y,n)创建一个由x到y且等分成n个元素的数组np.random.rand(m,n)创建一个m行n列且元素为随机值的数组


import numpy as np
'''
    通过arange函数可以创建一个等差数组
        例如 1 到 16 等差为2的整数
'''

array = np.arange(1,16,2)
print(array)

数组创建好以后便可以查看它的一些基本属性,属性说明如下:

  • ndarray.ndim : 数组的维度
  • ndarray.shape : 表示数组各维度的大小的整数元组。例如: 一个n行m列的数组 它的shape属性为(n,m)
  • ndarray.size : 数组元素的总个数
  • ndarray.dtype : 数组元素的数据类型
  • ndarray.itemsize : 数组中每个元素的字节大小
import numpy as np

array = np.array([1,3,5])
print(array)

print(array.ndim)

print(array.shape)

print(array.size)

print("-"*50)

array2 = np.array([[1,3,5],[2,4,6]])
print(array2)

print(array2.ndim)

print(array2.shape)

print(array2.size)

numpy的基本操作

ndarray对象提供了一些可以简单快速修改数组基础形状的属性和方法。
例如,将3行4列的二维数组转换成6行2列的二维数组。
现在我们来介绍这些属性和方法

属性方法说明ndarray.T对数组进行轴对换,不改变数组本身ndarray.reshape(n,m)不改变数组ndarray,返回一个形状为(n,m)的数组ndarray.resize(new_shape)直接改变数组本身ndarray.ravel()对数组进行降维,返回数组的一个视图ndarray.swaoaxes(axis1,axis2)对数组的任意两个维度进行调换ndarray.transpose()不改变数组,返回置换后的数组


import numpy as np

arr = np.array([[1,2,3],[4,5,6]])
print(arr)

new_arr = arr.reshape((3,2))
print(new_arr)

arr2 = arr.ravel()
print(arr2)

print(arr.T)
print("-"*50)

arr = np.arange(1,9).reshape((4,2))
print(arr)

print(arr[1])

print(arr[0:3])

二、数据可视化

1.数据可视化的概述

数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。

它是一个处于不断演变之中的概念,其边界在不断地扩大。主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形、图像处理计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。与立体建模之类的特殊技术方法相比,数据可视化所涵盖的技术方法要广泛得多。

随着数据仓库技术、网络技术、电子商务技术的发展,可视化涵盖了更广泛的内容,并产生数据可视化的概念。

人话就是: 将大量数据以图表的形式呈现

matplotlib是一个强大的绘图工具,提供了多种输出的格式,可以轻松帮助开发人员构建自己所需的图形。

其中matplotlib提供了一个子模块 pyplot,该模块封装了Matlab命令时的绘图函数,更加诠释了面向对象语言的优势。

引入模块操作 import matplotlib.pyplot as plt
后续将以plt代替

2.pyplot绘图区域

首先介绍pyplot模块中的绘图区域提供的函数。
函数说明plt.figure(figsize=None,facecolor=None)创建绘图区域plt.axes(rect,projection,axisbg)创建坐标系风格的子绘图区域plt.subplot(nrows,ncols,index)在当前绘图区中创建一个子绘图区域olt.subplots(nrows,ncols,index)在当前绘图区中创建多个子绘图区域


import matplotlib.pyplot as plt

plt.figure(figsize=(10,6),facecolor='green')
plt.show()

这个时候就显示出绘图区域了, 要想生活过得去,必须头上来点绿

[超详细高达5000字]一篇带你玩转数据分析与数据可视化

Figure对象允许将整个绘图区划分为若干个子绘图区域,每个子绘图区域中都对应着唯一的Axes对象,该对象具有属于自己的坐标。
使用axes函数就可以创建一个Axes对象


import matplotlib.pyplot as plt

'''
    参数详解:
        rect参数表示坐标系与整个绘图区域的关系 取值可以为 left bottom width height
            默认范围都是[0,1]
        projection参数表示坐标轴的投影类型
        facecolor 参数 代表着背景色 默认white白色
'''
plt.axes([0.1,0.5,0.7,0.3])
plt.show()

效果如下

[超详细高达5000字]一篇带你玩转数据分析与数据可视化

subplot(nrows,ncols,index)函数会先将整个绘图区域 等分为:
nrows(行) * ncols(列)的矩阵区域,然后按照先行后列的计算方式对每个子区域进行编号。
编号默认从1开始,之后在index的位置上生成一个坐标系。


import matplotlib.pyplot as plt

plt.subplots(2,2)
plt.show()

[超详细高达5000字]一篇带你玩转数据分析与数据可视化

3.pyplot之图表与风格控制

matplotlib试图将简单的事情变得更简单,让无法实现的事情得以实现,仅仅几行代表就可以生成图标。
例如:直方图、条形图、散点图等。
现在我们就来介绍pyplot模块的绘图函数

函数说明plt.plot(x,y)绘制折线图plt.boxplot(x,notch)绘制箱型图plt.bar(x,height,width,bottom)绘制条形图plt.barh(y,width,height,left)绘制水平条形图plt.hist(x,bins)绘制直方图plt.pie(data)绘制饼图plt.scatter(x,y)绘制散点图plt.specgram(x,NFFT,Fs)绘制光谱图

利用pyplot中的Plot函数绘制最简单的折线图,语法格式如下 plot(x,y,fmt,* args,** kwargs)

参数说明:

  • x和y参数用于接收x y轴所用到的数据,可以是列表或numpy数组
  • fmt参数是可选的,用于控制组成线条的字符串 由颜色值字符、风格值字符和标识符字符组成
  • 列举一些颜色

颜色值说明”b”(blue)蓝色”g”(green)绿色”r”(red)红色”y”(yellow)黄色

风格值

风格值说明”-“实线”–”长虚线”-.”短点相间线”:”短虚线

标记值

标记字符还可使用说明”.”point marker点”,”pixel marker像素”o”circle marker实心圆’v’triangle_down marker倒三角标记’^’triangle_up marker上三角标记’

"""
    使用plot()函数分别绘制
        sin函数
        cos函数

"""
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s = np.cos(x),np.sin(x)

plt.plot(x,s,"m:")

plt.plot(x,c,"g--")

plt.show()

效果如下

[超详细高达5000字]一篇带你玩转数据分析与数据可视化

Original: https://blog.csdn.net/ChengXuTeng/article/details/124607110
Author: Philosophy7
Title: [超详细高达5000字]一篇带你玩转数据分析与数据可视化

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/764147/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球