python-数据分析-numpy、pandas、matplotlib的常用方法

2023-11-20

一、numpy

import numpy as np

1.numpy 数组 和 list 的区别

输出方式不同
在这里插入图片描述

里面包含的元素类型
在这里插入图片描述

2.构造并访问二维数组

使用 索引/切片 访问ndarray元素

切片 左闭右开

np.array(list)

在这里插入图片描述

3.快捷构造高维数组

  • np.arange()

  • np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s
    在这里插入图片描述
    使用matplotlib.pyplot模块验证标准正态分布
    在这里插入图片描述

  • np.random.randint(起始数,终止数(行,列))

4.改变数组的形状 几行几列 reshape

在这里插入图片描述

二、pandas

数据分析 - - - 数据清洗 - - - 控制过滤 - - - 异常值捕获

map分组 聚合

import numpy as np
import pandas as pd

pandas善于处理二维数据

1.数据结构 Series 和 DataFrame

Series

series类似于通过numpy产生的一维数据,但series包含索引(可以自己定)
在这里插入图片描述

在这里插入图片描述

DataFrame

DataFrame是一种二维表格数据结构

创建方法:

  1. 通过列表创建

    行索引是index,列索引是columns

    在这里插入图片描述

    先创建一个空的DataFrame,通过列表生成DataFrame

    在这里插入图片描述

  2. 通过字典创建

    在这里插入图片描述
    简单创建
    在这里插入图片描述
    将字典键变成行索引 - - - from_dict - - - orient(朝向)或者使用 T
    在这里插入图片描述

    data = {'a':[1,3,5],'b':[2,4,6]}
    pd.DataFrame(data = data)
    
    pd.DataFrame.from_dict(data,orient='index')
    

    在这里插入图片描述

  3. 通过二维数组创建

    在这里插入图片描述

    np.arange(12)	# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
    

2.修改索引

set_index 把常规行变成索引列

不会修改原始数据,若希望修改,使用 inplace=True

data.set_index(‘index’, inplace=True)

在这里插入图片描述

修改列名称 rename

修改列名称,使用columns - - - 行 index
使用字典来表达映射关系 - - - {原始数据:新数据}
在这里插入图片描述

将行索引变成常规列 reset_index()

若想修改原始数据 使用reset_index(replace=True)
在这里插入图片描述

3.Excel或csv数据的读取和写入

pd.read_excel(file_name, sheet_name=0, index_col=0)
从左到右,第一个sheet索引是0,该函数返回该页内容 - - - 会将第一行变为列索引 - - - 行索引从0开始
index_col=0 :将第一列变成行索引
header=0:将第一行变成列索引 - - - header=[0,1] 将前两行变成列索引

xxx.to_excel(file_name):将数据写到新的Excel文件

pd.read_csv(file_name, sep=','):读取csv文件,sep默认逗号分隔
index_col - - - header
xxx.to_csv(file_name)

4.pandas数据的读取和筛选

df = pd.DataFrame(data=[[1,2,3],[4,5,6],[7,8,9]],index=['r1','r2','r3'],columns=['c1','c2','c3'])

在这里插入图片描述

  • 读取 列 xxx[‘xxx’]
    在这里插入图片描述
  • 读取 行 xx.loc[‘xxx’]

在这里插入图片描述

  • df.head()
    默认查看前5行,出入几查看几行

  • 查看特殊的数据 按照特定条件筛选

    在这里插入图片描述

5.数据整体情况查看

  • df.shape - - - 查看数据有几行几列
  • df.describe() - - - 查看一些统计指标 – 每一列的个数 均值 标准方差 最小值 最大值
  • df.info() - - - 查看表格数据的信息 - - - 每一列的个数 是否有空值 每一列的类型

在这里插入图片描述

  • df.value_counts() - - - df.loc[‘r2’].value_counts()
    查看某行或某列有哪些数据,以及这些次数出现的频次
    在这里插入图片描述

6.数据运算

  • 从已有的列,通过数据运算创造一个新的列
    在这里插入图片描述
  • sum 求和 mean 均值 axis=0 is 列(默认) axis=1 is 行
    求列方向的聚合值

7.数据映射 map()

map()根据列对数据进行映射

map是一个循环遍历的过程

people = pd.DataFrame(data={
    '身高':np.random.randint(130,180,10),
    'age':np.random.randint(18,23,10)
})

在这里插入图片描述
在这里插入图片描述

def map_high(x):
    if x >= 170:
        return '高'
    else:
        return '低'

people['高/低'] = people['身高'].map(map_high)

在这里插入图片描述

在这里插入图片描述

8.空值的填充和查找

NaN空值·

写入空值

在这里插入图片描述

填充空值 fillna()

表格数据如果显示NaN,表示此处为空值fillna()函数,可以填充空值
inplace=True表示写入到数据内存

people.fillna(value=0, inplace=True)

将空值NaN使用value替换

在这里插入图片描述

查找空值 isnull()

是NaN,返回True - - - True is 1
不是返回False - - - False is 0

在这里插入图片描述
xxx.isnull().sum() 对布尔值进行列方向的求和 - - - - 求出每一列空值的个数

三、matplotlib

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
%matplotlib inline

1.折线图 plt.plot()

在这里插入图片描述

color 线的颜色
linewidth 线的宽度 像素
linestyle 线的风格

在这里插入图片描述
dashed 虚线 dashdot 虚线和点 dotted 点

在这里插入图片描述
在这里插入图片描述

# 可以省略,但建议写上,强制将前面的绘图代码渲染出来
plt.show()
x = [1,2,3]
y = [2,4,6]
plt.plot(x,y)

a = [1,3,5]
b = [1,2,3]
plt.plot(a,b)
# 可以省略,但建议写上,强制将前面的绘图代码渲染出来
plt.show()

在这里插入图片描述

2.柱状图 plt.bar()

条形图的横轴可以是字符串,起标识作用

x = ['A','B','C','D']
y = [13,17,15,14]
# plt.bar(x,y, color=['red','blue'])
plt.bar(x,y,color=np.random.random((4,3)))

在这里插入图片描述

3.散点图 plt.scatter()

回归问题

# 横轴数据
x = [1.3, 4,5.8,7.4]
# 纵轴数据
y = [20,30,40,50]
# 大小  也可以表达第三维数据
size = np.array([1,4,9,16])
plt.scatter(x,y,s=size*10,c=(1,2,3,4))

在这里插入图片描述

四、pandas 自带的绘图函数

DataFrame

# 从10到100随机生成一个数据
np.random.randint(10,100)   # 74
# 10行3列
np.random.randint(10,100,size=(10,3))

在这里插入图片描述

df = pd.DataFrame(data=np.random.randint(10,100, size=(10,3)),columns=['A','B','C'])
df.plot(kind='bar')

kind默认是line
hist 直方图 - - - pie 饼图 - - - box 箱体图 - - - area 面积图
在这里插入图片描述
在这里插入图片描述
T转置操作
在这里插入图片描述
Series

df = pd.Series(data=np.random.randint(1,10,size=5),index=['A','B','C','D','E'])
df.plot(kind='bar',color='red')

在这里插入图片描述

1.添加文字说明 标题 坐标轴

np.random.random(3)
# array([0.62461037, 0.88015921, 0.78706271])
# 从0到2π拆分成100个数,等差数列
x = np.linspace(0,2*np.pi, num=100)
y = np.sin(x)
# label 是图例要展示的内容
plt.plot(x,y,color=np.random.random(3),label='line of sin',linestyle='--')
# 允许展示图例 loc参数可选
plt.legend(loc='lower right')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Y=sinX')

在这里插入图片描述

plt.plot(x,np.sin(x),label='sin')
plt.plot(x,np.cos(x),label='cos')
plt.legend(loc='upper right')

在这里插入图片描述

2.label中文报错解决方法

使用matplotlib画图,默认不支持中文显示

plt.rcParams		# 可以查看一些默认属性
plt.rcParams['font.sans-serif']='SimHei'	# 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False	# 解决符号'-'显示为方框的问题

plt.plot(x,np.sin(x),label='正弦函数')
plt.plot(x,np.cos(x),label='余弦函数')
plt.legend(loc='upper right')
plt.title('函数')

在这里插入图片描述

五、绘制多个图表 subplot()

三个参数

plt.subplot(221) 两行两列第一个

# 调整图表大小
plt.figure(figsize=(12,8))

ax1 = plt.subplot(221)
ax1.plot(x,np.sin(x))

ax2 = plt.subplot(222)
ax2.plot(x,np.cos(x))

ax3 = plt.subplot(223)
ax3.bar(['a','b','c'],[1,2,3])

ax4 = plt.subplot(224)
# ax4.pie(sizes=[30,40,30],labels=['A','B','C'],colors=['red','blue','yellow'])
ax4.pie(np.array([10, 20, 30, 40]))

plt.show()

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python-数据分析-numpy、pandas、matplotlib的常用方法 的相关文章

随机推荐

  • 【Transformer系列】深入浅出理解Transformer网络模型(综合篇)

    一 参考资料 The Illustrated Transformer 图解Transformer 完整版 Attention Is All You Need The Core Idea of the Transformer transfor
  • 【含源码】两种不同风格的圣诞树代码合集,其中还有可以改名字的圣诞树代码

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 前言 一年一度的圣诞节马上就要到了 看到好多程序员小伙伴已经开始炫耀自己制作的圣诞树了 今天就跟大家分享2种不同风格的圣诞树 附上完整代码 拿来即用可以按照自
  • Linux常用命令记录

    文章目录 1 软件安装 安装软件 来自源服务器 安装 deb软件 来自本地 deb文件 修复依赖关系 卸载软件 2 文件 文件夹操作 删除文件夹 移动文件 文件重命名 3 程序查看 处理 进程查看 查看端口占用情况 强制终止程序 4 解压文
  • 肖sir__mysql之单表__004

    mysql之单表 一 建表语句 1 show databases 查看所有的数据库 2 create databaes 数据库名 创建数据库 3 use 数据库名 指定使用数据库 4 show tables 5 创建表 格式 create
  • linux计算字符串个数,Linux 统计某个字符串个数的方法

    在 Linux 系统下 有时候 我们可能要对一个日志文件进行分析 比如 分析日志文件中某个单词或者某个特殊字符串出现了多少次 对于匹配统计 一般用到正则方法 下面总结了几个统计字符串个数的方法 方法一 使用 grep 命令 grep o 字
  • Python自动化测试 软件测试最全教程(附笔记),看完就可就业

    最近看到很多粉丝在后台私信我 叫我做一期Python自动化测试的教程 其实关于这个问题 我也早就在着手准备了 我录制了一整套完整的Python自动化测试的教程 都上传在B站上面 大家有兴趣的可以去看一下 Python自动化测试 手把手教你做
  • springboot不香吗?为什么还要使用springcloud

    1 为什么要使用springcloud 如果我们的服务需要调用另外的一个服务 当然可以通过url 加接口直接调用 但是如果url变动后 我们也要跟着修改 还有可能服务宕机我们也不知道 而且现在只有一个url不具备高可用性 就算有多个url
  • Hudi Log 文件格式与读写流程

    Hudi Log 文件格式与读写流程 背景 对 Hudi 有一定了解的读者应该知道 Hudi 有 COW 和 MOR 两种表类型 其中的 MOR 表会通过日志文件记录文件 写入一个 MOR 表后产生的文件可以观察到 一个 MOR 表数据存储
  • 【LeetCode与《代码随想录》】字符串篇:做题笔记与总结-JavaScript版

    文章目录 代码随想录 主要题目 344 反转字符串 541 反转字符串 II 剑指 Offer 05 替换空格 151 反转字符串中的单词 剑指 Offer 58 II 左旋转字符串 28 找出字符串中第一个匹配项的下标 KMP 还没写 4
  • 我最喜欢的10个顶级数据科学资源,kaggle、TDS、arXiv......

    当我声明数据科学正在成为最受欢迎的工作领域之一时 我想你不会与我争辩 特别是考虑到 哈佛商业评论 将 数据科学家 评为21世纪最性感的工作 在这个领域 我们已经走过了很长的路 从数据科学和机器学习等术语还不为人所知 到一切都聚集在统计学的保
  • systemd[1]: Failed to load SELinux policy. freezing.

    今天早上发现centos7无法启动了 界面提示systemd 1 Failed to load SELinux policy freezing 查到一篇资料说是selinux设置出问题了 他将 etc selinux config文件中的s
  • MATLAB进行模式识别的实验

    一 实验一习题 我猜测是根据最大似然估计法先求出那两个参数的值 然后代入 得到的是只关于x的函数 然后把文本里的1000个数据导入 画图 首先 我先把txt的数据读取到矩阵里面 方便后续处理 用到的函数 1 这里有一个比较详细的fopen的
  • docker部署war包、将容器打包成镜像、镜像导出到本地、镜像推送到dockerhub

    前言 最近公司使用帆软 finereport 报表工具制作数据报表 并且需要将制作好的报表打包成war包通过docker部署 并且将部署好的项目制作成docker镜像 发给客户 下面将部署过程中踩的坑总结一下 想要了解帆软可以点击官方链接查
  • 图片上传服务器系统说明

    图片服务器测试用例 图片上传服务器系统说明 数据库设计 drop database if exists drawing bed create database drawing bed character set utf8mb4 use dr
  • 东风小康为什么是dfsk_自吸这么“香”,为什么现在新车都是涡轮增压

    知乎视频 www zhihu com 开车不带 T 干啥都没劲 车子用了涡轮增压能够显著提升动力 能把一台 能用 的车变成 好用 的车 并且国内的排放法规也越来越严格 使用涡轮增压的同时 也具备了一些节能减排的效果 所以说 自然吸气的车越来
  • Multihead Attention - 多头注意力

    文章目录 多头注意力 模型 实现 小结 多头注意力 在实践中 当给定 相同的查询 键和值的集合 时 我们希望模型可以基于相同的注意力机制学习到不同的行为 然后将不同的行为作为知识组合起来 捕获序列内各种范围的依赖关系 例如 短距离依赖和长距
  • [3dsMax]2018版下拉菜单项的子菜单无法选中

    软件自身问题 安装更新补丁即可解决 不想更新补丁也可以使用键盘的方向键进行选中 补丁百度云链接 https pan baidu com s 1LDxRFwQnR0GSONuz7wcEfA 提取码 6gpk
  • 面试高频的CMS回收器

    CMS回收器 低延迟 想了解更多GC垃圾回收器的知识 可以看下面这篇文章JVM之垃圾回收篇 在JDK1 5时期 Hotspot推出了一款在强交互应用中几乎可认为有划时代意义的垃圾收集器 CMS Concurrent Mark Sweep 收
  • CROSSFORMER: A VERSATILE VISION TRANSFORMER BASED ON CROSS-SCALE ATTENTION 论文阅读笔记

    CROSSFORMER A VERSATILE VISION TRANSFORMER BASED ON CROSS SCALE ATTENTION 论文阅读笔记 这是浙大 腾讯 哥伦比亚大学一起发表在ICCV的一篇文章 文章有三个贡献 一是
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    一 numpy import numpy as np 1 numpy 数组 和 list 的区别 输出方式不同 里面包含的元素类型 2 构造并访问二维数组 使用 索引 切片 访问ndarray元素 切片 左闭右开 np array list