Python高级--数据分析(pandas + matplotlib 绘图)

【Python数据分析与可视化】Pandas数据分析与matplotlib绘图 【Python数据分析与可视化】Pandas数据分析与matplotlib绘图 文章目录【Python数据分析与可视化】Pandas数据分析与matplotlib绘图导包matplotlib模仿绘制图表如下样式的绘图,请写出相应的代码;如下样式的绘图,请写出相应的代码;数据分析及可视化查看星巴克旗下有哪些品牌,统计每个品牌有多少家店查看全世界一共有多少个国家和地区开设了星巴克门店,显示门店数量排名前10用柱状图绘制排名前10国家的分布情况显示拥有星巴克门店数量排名前10的城市绘制星巴克门店数量前10的城市分 阅读详情

一、matplotlib 库

一个用来绘图的库
import matplotlib.pyplot as plt

1)plt.imread(“图片路径”)

功能: 将图片加载后返回一个维数组

>>> jin = plt.imread("./jin.png")
>>> jin
array([[[0.24313726, 0.24313726, 0.24705882],        
        ...,

        [0.7294118 , 0.7294118 , 0.7294118 ]]], dtype=float32)

>>> jin.shpae
(273, 411, 3)
'''
这是一个三维数组
第一层代表将图片分成273行,
第二层代表将图片的第一层的每一行分为411列,
第三层代表将每一像素点中的(R,G,B)

注意:有些图片加载后最内层有4个元素,分别是(R,G,B,A[阿尔法/透明度])

'''

2)plt.imshow(ndarray)显示图片

功能: 将多维数组渲染为一张图片

>>> plt.imshow(nd)  #将加载后的多维数组传入就可以将图片渲染出来
'''
有的图片加载出来之后数据范围在0-255之间的需要将数据/255之后转化为0-1之间的就可以和0-1的图片进行合并操作
'''

这里就可以将图片进行处理(反转,拉伸,改色)等操作

这里写图片描述

3)plt.imsave(ndarray)保存图片

plt.imsave(ndarray)
默认保存到当前路径

plt.imsave('图片名称.png',图片数据,cmap='gray')    #保存图片
cmap:将图片保存为黑白图片

二、Pandas绘图

1.绘制简单的线型图

1.1)简单的Series图表示例 .plot()

绘制正弦曲线

# 正弦曲线
x = np.linspace(0,2*np.pi,100)      # 从0 到 2π  取100份
y = np.sin(x)                       # y 为sin(x) 的值
s = Series(data=y,index=x)          # 构建一个Series对象
s.plot()                  # 使用Series的plot()方法

这里写图片描述`

1.2) 两个Series绘制的曲线可以叠加

这里写图片描述

2)简单的DataFrame图表示例 .plot()

绘制余弦曲线

x = np.linspace(0,2*np.pi,100)          # 从0 到 2π  取100份
df = DataFrame(data={'sin':np.sin(x),'cos':np.cos(x)},index=x)   #创建DataFrame对象
df.plot()

这里写图片描述

2.数据驱动的线型图(分析苹果股票)

导包

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

1.读取数据

  • 读取文件AAPL.csv
df = pd.read_csv('./data/AAPL.csv')
df.head()

这里写图片描述

2.检查数据类型

df.dtypes

Date          object       #时间的数据类型为对象,在使用中需要做处理
Open         float64
High         float64
Low          float64
Close        float64
Adj Close    float64
Volume       float64
dtype: object

3.将’Date’这行数据转换为时间数据类型

pd.to_datetime(Series对象)
功能: 将Series转换为时间数据类型

df['Date']  # 这一列获取出来是一个Series
type(df['Date'])
df['Date'] = pd.to_datetime(df['Date'])
df.dtypes

Date         datetime64[ns]  #此时已经是时间类型的数据了
Open                float64
High                float64
Low                 float64
Close               float64
Adj Close           float64
Volume              float64
dtype: object

4.将’Date’设置为行索引

df.set_index('Date',inplace=True)
'''
inplace:改变原来的变量的值
'''

5.绘制图形,以字段Adj Close(已调整收盘价格)为数据绘制

df['Adj Close'].plot()

这里写图片描述

3.绘制简单的柱状图

1) Series柱状图示例,kind = ‘bar’/’barh’

随机产生5个数,对其绘制纵向柱状图

'''
data:  生成之后为Y轴的数据
index: 生成之后为X轴的索引
'''
s = Series(data=np.random.randint(0,10,size=5),index=list('abcde'))  #随机产生5个数
s.plot(kind='bar')

这里写图片描述
随机产生5个数,对其绘制横向柱状图

'''
data:  生成之后为Y轴的数据
index: 生成之后为X轴的索引
'''
s = Series(data=np.random.randint(0,10,size=5),index=list('abcde'))  
s.plot(kind='barh')

这里写图片描述

2) DataFrame柱状图示例

随机产生一个二维数组,并绘制纵向(kind=’bar’)柱状图

'''
index: 生成数据X轴的索引
columns: 特征的名称
'''
df = DataFrame(np.random.randint(0,10,size=(8,4)),index=list('abcdefgh'),columns=list('ABCD'))
df.plot(kind='bar')

这里写图片描述

随机产生一个二维数组,并绘制横向(kind=’barh’)柱状图
这里写图片描述

4.绘制简单的直方图

直方图
直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。

s = Series(np.random.normal(loc=0,scale=5,size=10000))    # normal 正态分布
s.hist()
#这里模拟出一组以0为中心,标准差为5的正态分布数据, 绘制出的直方图如下

这里写图片描述

5.绘制简单的核密度(“ked”)图

核心密度估计:对分布的图进行估计核心
我们继续使用刚刚直方图的 Series的正态分布数据

Series(np.random.normal(loc=0,scale=5,size=10000))    
s.plot(kind='kde')

这里写图片描述

直方图一般和核密度图常常被画在一起,既展示出频率,又展示出了概率

有两组数组,我们将这两组数据连接成为一个。
分析这组新数据

ndarr1 = np.random.normal(loc=-10,scale=5,size=5000)  #第一组数据
ndarr2 = np.random.normal(loc=15,scale=2,size=5000)  第二组数据
ndarr = np.concatenate([ndarr1,ndarr2])   #将两组数据合为一组
s = Series(ndarr)    #生成Series对象
s.plot(kind='kde')  # 核心 密度 估计 用来展示某个位置出现内容的概率的估计值
s.hist(density=True)  # density表示直方图也以 密度概率的值来展示  hist用来展示某个位置出现内容的实际频率
#展示效果如下
'''
s.plot(kind='kde')  展示某个位置的估计值
s.hist(density=True)  表示某个位置出现内容的实际频率
'''

这里写图片描述

6.绘制简单的散点图

散布图是观察两个一维数据数列之间的关系的有效方法

示例数据

df = DataFrame(np.random.randint(0,150,size=(20,3)),columns=['python','math','eng'])
df   #模拟一个DataFrame数据,列名为'python','math','eng'

    python  math    eng
0   141     41      55
1   37      76      96
2   61      28      135
。。。
17  124     103     83
18  86      47      44
19  35      85      85

将这组数据生成散点图

df.plot(kind='scatter',x='python',y='eng')
# kind = 'scatter'  , 给明标签columns

这里写图片描述

这样其实是没有什么实际的意义的
现在我们再加一列和“python”相关的数据

np.random.randint(-10,10,1)[0]   # 0-10之间 随机取一个数
df['php'] = df['python'].map(lambda x: x*0.9+np.random.randint(-10,10,1)[0])
df

    python  math    eng php
0   121     67      15  113.9
1   148     33      149 123.2
。。。
18  79      77      108 74.1
19  105     107     53  102.5

我们从数据是很难看出来python和php有什么关系
这时我们就可以用散点图来绘制出观察

这里写图片描述

可以看出有python的值增大,php的值也会增大。

Python常见的数据分析工具有哪些? Python本身的数据分析功能并不强,需要安装一些第三方的扩展库来增强它的能力。在Python培训课程用到的库包括NumPy、Pandas、Matplotlib、Seaborm、NLTK等,接下来将针对相关库做一个简单的介绍。NumPy是Python开源的数值计算扩展工具,它提供了Python对多维数组的支持,能够支持高级的维度数组与矩阵运算。此外,针对数组运算也提供了大量的数学函数库。NumPy是大部分Python科学计算的基础,它具有以下功能(1)快速高效的多维数据对象ndarray。... 阅读详情

相关推荐

简述 Python 的 Numpy、SciPy、Pandas、Matplotlib 的区别

From:https://www.jianshu.com/p/32cb09d84487 Numpy:基础的数学计算模块,以矩阵为主,纯数学。SciPy:基于Numpy,提供方法(函数库)直接计算结果,封装了一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。Pandas:提供了一...

墨鱼菜鸡 1924

python机械数据分析_机器学习之数据探索——数据特征分析(分布分析)

数据特征分析与数据质量分析一道构成数据探索的两方面工作,在前文中介绍过关于数据质量分析的概况,本文将对数据特征分析作简介,并着重于分布分析的角度,相比于数据质量分析,数据特征分析更注重于找寻数据间的关系。数据特征分析包括以下几个分析角度:1、分布分析2、对比分析3、统计量分析4、帕累托分析5、正态性检验6、相关性分析其上每一个分析角度都有丰富的内容。分布分析顾名思义,分布分析研究数据的分布特征和分...

weixin_39531374的博客 246

pandas的快速可视化API进行直方图可视化、使用pandas的bootstrap_plot函数理解观测数据的中心趋势度量(均值、中位数、mid-range)的可变性

pandas的快速可视化API进行直方图可视化、使用pandas的bootstrap_plot函数理解观测数据的中心趋势度量(均值、中位数、mid-range)的可变性

data+scenario+science+insight 531

pandas中的绘图函数+线形图+柱状图+直方图+随机百分比密度图+箱线图+散布图

文章目录pandas中的绘图函数内容概要线形图柱状图直方图随机百分比密度图散布图机器学习使用的比较多的一种图形散布图可以描述数据的分布...

qq_36661843的博客 1593

Python数据分析NumPy和pandas(二十八、使用pandas和seaborn绘图)

通常的过程是将此分布近似为“内核”的混合,即更简单的分布,如正态分布。对于在绘图之前需要聚合或汇总的数据(例如我们上面的归一化操作),使用 seaborn 库可以更加简单(使用 pip install seaborn 安装)。对于条形图,一个非常有用的方法是使用 value_counts 可视化 Series 的值频率:s.value_counts().plot.bar()。DataFrame 有许多参数选项,使得对列的处理方式更加灵活,例如,是将它们全部绘制在同一个子图上,还是创建单独的子图。

FreedomLeo1的博客 1519

第十九篇:Python 进阶-数据分析与可视化进阶

数据透视表是一种强大的数据汇总工具,它允许我们对数据进行灵活的分组、聚合和重塑。在 Pandas 中,可以使用方法来创建数据透视表。index地区columns年份values销售额aggfuncsum输出结果将是一个数据透视表,行是地区,列是年份,表格中的值是对应地区和年份的销售额总和。

无 77

Matlab中plot函数绘图基本用法

转自:https://www.cnblogs.com/blogwww/p/9583255.html >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 /////////////////////////////////////////////////////...

Falcon的博客 2589

数据科学库实践:Numpy、Pandas、Matplotlib和Seaborn

数据科学作为一门跨学科领域,利用科学的方法、过程、算法和系统来从数据中提取价值和知识,已经渗透至商业、医疗、金融等众多行业。它的核心是运用统计学、机器学习、数据挖掘等技术分析大规模数据集,以发现模式、趋势和关联,特别是那些能为决策提供支持的见解。Python语言之所以在数据科学领域中脱颖而出,主要有以下几点原因:其一,Python拥有清晰易读的语法,这使得它易于学习和使用;其二,Python社区庞大且活跃,贡献了大量高效的数据处理库;其三,Python具有良好的跨平台性,可运行于不同操作系统;

weixin_28922227的博客 1223

Matplotlib:Python 的绘图库,可以生成出版质量级别的图形。

图形样式和主题:Matplotlib提供了一系列预定义的图形样式和主题,可以通过函数快速应用。此外,用户还可以自定义图形的颜色、字体、线型、标记、坐标轴和注释等,使得图形更加符合特定需求。文本与注释:在图形中添加文本和注释是非常常见的需求,Matplotlib通过text和annotate函数提供了灵活的文本添加和注释功能。用户可以精确控制文本的位置、字体大小、颜色和旋转角度等属性。图例与坐标轴:图例和坐标轴是图形的重要组成部分,Matplotlib允许用户通过legend和axis。

LS_Ai的博客 1132

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

射频工程师必须了解的S参数四项要点

本文围绕单端 6 英寸走线的 S 参数展开深入分析,核心包含四项关键要点:低频下导线电学长度远小于信号波长,S11 呈大负分贝值、S21 接近 0 分贝;端口与走线的阻抗不匹配引发反射叠加,形成 S11 首个峰值(对应传输线四分之一波长频率);S21 相位可作为一致性检查依据,其 90° 相位差与 S11 峰值吻合;理想建模中 S11 峰值随频率上升因损耗下降,实际测量因连接器等阻抗不连续性,S11 会出现振荡上升。分析依托 Keysight ADS 工具与电磁求解器原理,为 S 参数解读提供科学支撑。

一只豌豆象的博客 1284

和数据分析相关的重要Python类库介绍

NumPyNumPy(Numerical Python的简称)是Python科学计算的基础包。在本专题中的大部分内容都是基于NumPy以及构建于其上的库,它提供了以下功能(不限于此): - 快速高效的多位数组对象ndarray - 用于对数组执行元素级计算以及直接对数组执行数学运算的函数 - 用于读写硬盘上的基于数组的数据集工具 - 线性代数计算、傅里叶变换以及随机数生成 - 用于将C、C

天涯笨熊的博客 11万+

【Docker】掌握 Docker魔法:Windows 11 平台上的完美容器部署终极指南

【Docker】掌握 Docker魔法:Windows 11 平台上的完美容器部署终极指南 一文搞懂什么是 Docker?分析容器的工作原理、容器的架构、Docker的优势、使用 Docker的原因。 全程手把手教你Docker的安装与使用,配置阿里云镜像加速、容器常用命令!

寸铁的博客 10万+

pandas和python的区别_Python之Numpy,SciPy和Pandas,Matplotlib的区别

Numpy: 基础的数学计算模块,以矩阵为主,纯数学。SciPy: 基于Numpy,提供方法(函数库)直接计算结果,封装了一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。Pandas: 提供了一套名为DataFrame的数据结构,适合统计分析中的表结构,在上层做数据分析,更简洁的说:NumPy:N维数组容器SciPy:科...

weixin_35492602的博客 442

工程测量不用愁,120个视频动画帮你忙,简单易学直观明了!

工程测量不用愁,120个视频动画帮你忙,简单易学直观明了!文末提供下载地址。 下载地址: 链接:https://pan.baidu.com/s/11S6XDq9Eaa3DG3VKRMBIPg

智慧空间实验室 1019

基于STM32、HAL库的MICRF112YMM-TR 无线收发器驱动程序设计

内部集成了 VCO、PLL、PA、LNA、混频器、滤波器等射频功能单元,极大减少了外部元件数量,降低了设计和布线难度。: 具有多种工作模式(睡眠、待机、接收、发射),待机电流极低,非常适合电池供电的物联网(IoT)设备。是 Microchip 公司生产的一款高性能、低功耗的单片 UHF ASK/FSK 收发器芯片。: 支持 ASK (幅移键控) 和 FSK (频移键控) 调制,适应不同应用需求。// 可以添加其他配置参数,如中心频率、数据速率等。智能家居(安防、遥控、传感)远程钥匙进入系统 (RKE)

corlin6688的博客 415

阅读笔记:利用Python进行数据分析第2版——第9章 绘图和可视化

信息可视化(也叫绘图)是数据分析中最重要的工作之一。Python有许多库进行静态或动态的数据可视化,但我这里重要关注于matplotlib和基于它的库。 matplotlib是一个用于创建出版质量图表的桌面绘图包(主要是2D方面)。该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口。matplotlib和IPython社区进行合作,简化了从IPython shell(包括现在的Jupyter notebook)进行交互式绘图。matplotlib支持各

明月清風 701

Python 爬虫 + 数据分析:社会调查数据抓取与结果可视化分析

在当今数字化时代,数据已成为推动社会发展的关键资源之一。无论是市场调研、学术研究还是政策制定,社会调查数据都扮演着至关重要的角色。通过 Python 爬虫技术,我们可以高效地获取这些数据,并结合数据分析与可视化工具,深入挖掘数据背后的价值。本文将通过一个完整的实战项目,带你掌握如何使用 Python 爬虫抓取社会调查数据,并进行可视化分析。

yansideyucsdn的博客 126

【笔记】2022.06.20 python数据分析三大神器numpy、pandas、matplotlib

很强

SpriteNym的博客 2333

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署

OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 808

openclaw通俗入门系列4——智能体工作区

工作区 = 智能体的家,存放它的性格、记忆、技能。默认不是牢笼(可以用沙箱隔离)。建议放到私有 Git 备份,但绝对不要提交密钥!

m0_60605453的博客 462

Python数据分析三剑客:NumPy、Pandas、Matplotlib核心原理与实战指南

在数据科学和机器学习领域,高效处理和分析数据是核心能力。向量化计算通过利用底层优化库(如NumPy)对数组进行批量操作,相比传统循环能实现数十到数百倍的性能提升,这是高性能数值计算的基础原理。这种技术价值在于能大幅缩短数据处理时间,提升模型训练和迭代效率,广泛应用于科学计算、金融建模和人工智能等场景。结合多维数组和广播机制,向量化成为Python数据分析生态的基石。在此基础上,Pandas提供了强大的DataFrame结构,通过其分组聚合(GroupBy)功能,可以轻松实现数据的拆分、应用与合并,完成复杂的

weixin_30985047的博客 246

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python数据分析与可视化

Python是数据分析与可视化领域中最受欢迎的编程语言之一,主要得益于其强大的库支持和易用性。以下是Python在数据分析与可视化中常用的库和工具,以及如何使用它们进行数据处理和图形展示。### 数据分析库1. **Pandas**: 2. **NumPy**: ### 数据可视化库1. **Matplotlib**: 2. **Seaborn**: 3. **Plotly**: 4. **Bokeh**: 通过结合这些库,你可以在Python中进行复杂的数据分析,并创建丰富多样的可视化图表,从而更直观地展

m0_59236127的博客 1128

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python numpy和pandas库的区别_简述Python的Numpy,SciPy和Pandas,Matplotlib的区别

Numpy: 基础的数学计算模块,以矩阵为主,纯数学。SciPy: 基于Numpy,提供方法(函数库)直接计算结果,封装了一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。Pandas: 提供了一套名为DataFrame的数据结构,适合统计分析中的表结构,在上层做数据分析,更简洁的说:NumPy:N维数组容器SciPy:科...

weixin_39897749的博客 246

python数据分析技术答案_Python数据分析-基础技术篇

1-1概述(07:00)1-2Windows与Linux中Anaconda的安装(09:07)2-1初识numpy(01:31)2-2ndarray(06:59)2-3numpy常用Array(05:11)2-4numpy常用操作(09:25)2-5numpy矩阵操作与线性方程组(02:56)2-6numpy其它应用简介(01:28)3-1matplotlib概述(01:09)3-2基本线图绘制(...

weixin_39887221的博客 190

matplotlib的详细知识点

Matplotlib 是 Python 中最流行的数据可视化库之一,用于创建高质量的静态、交互式和动态图表。它基于 NumPy 构建,提供丰富的绘图功能,适用于数据分析、科学计算和工程可视化。以下我将从基础到高级逐步介绍核心知识点,确保内容真实可靠(基于 Matplotlib 3.x 版本)。Matplotlib 功能强大但学习曲线较陡,建议从简单图表开始,逐步探索高级特性。示例代码:散点图与直方图。示例代码:创建简单图形。示例代码:快速线图。示例代码:定制线图。

2302_76568160的博客 680
上一篇: Python高级--scipy图片处理+积分
下一篇: Python高级--Pandas读写数据与表格
PyRookie
博客等级 码龄8年 89粉丝 32原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值