python-数据分析-numpy、pandas、matplotlib的常用方法
一、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是一种二维表格数据结构
创建方法:
-
通过列表创建
行索引是
index,列索引是columns
先创建一个空的DataFrame,通过列表生成DataFrame

-
通过字典创建

简单创建

将字典键变成行索引 - - - from_dict - - - orient(朝向)或者使用 T

data = {'a':[1,3,5],'b':[2,4,6]} pd.DataFrame(data = data)pd.DataFrame.from_dict(data,orient='index')
-
通过二维数组创建

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 pdimport 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()

相关文章:
python-数据分析-numpy、pandas、matplotlib的常用方法
一、numpy import numpy as np1.numpy 数组 和 list 的区别 输出方式不同 里面包含的元素类型 2.构造并访问二维数组 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) 3.快捷构造高维数组 np.arange() np.random.randn() - - - 服从标准正态分布- - - …...
ChatGPT⼊门到精通(5):ChatGPT 和Claude区别
⼀、Claude介绍 Claude是Anthropic开发的⼀款⼈⼯智能助⼿。 官⽅⽹站: ⼆、Claude能做什么 它可以通过⾃然语⾔与您进⾏交互,理解您的问题并作出回复。Claude的主要功能包括: 1、问答功能 Claude可以解答⼴泛的常识问题与知识问题。⽆论是历史上的某个事件,理科…...
ChatGPT 总结数据分析的所有知识点
ChatGPT功能非常多,特别是对某个行业,某个方向,某个技术进行总结那是相当专业的。 如下图。 直接用一个指令便总结出来数据分析当中的所有知识点内容。 AIGC ChatGPT ,BI商业智能, 可视化Tableau, PowerBI, FineReport, 数据库Mysql Oracle, Office, Python ,ETL Ex…...
hadoop-HDFS
1.HDFS简介 2.1 Hadoop分布式文件系统-HDFS架构 2.2 HDFS组成角色及其功能 (1)Client:客户端 (2)NameNode (NN):元数据节点 管理文件系统的Namespace元数据 一个HDFS集群只有一个Active的NN ÿ…...
0202hdfs的shell操作-hadoop-大数据学习
文章目录 1 进程启停管理2 文件系统操作命令2.1 HDFS文件系统基本信息2.2 介绍2.3 创建文件夹2.4 查看指定文件夹下的内容2.5 上传文件到HDFS2.6 查看HDFS文件内容2.7 下载HDFS文件2.8 HDFS数据删除操作 3 HDFS客户端-jetbrians产品插件3.1 Big Data Tools 安装3.2 配置windows…...
生活小记-挂号信
"挂号信"通常指的是在邮寄过程中通过挂号邮寄服务寄送的信件,相对于普通信件有一些特殊的特点和服务。以下是挂号信与其他信件(例如普通信件)之间的区别: 跟踪和确认: 挂号信:通过挂号邮寄服务寄…...
3D点云处理:基于PCA的计算点云位姿(占位待整理)
文章目录 文章目录:3D视觉个人学习目录微信:dhlddxB站: Non-Stop_...
本地私有仓库、harbor私有仓库部署与管理
本地私有仓库、harbor私有仓库部署与管理 一、本地私有仓库1.本地私有仓库简介2.搭建本地私有仓库3.容器重启策略介绍 二、harbor私有仓库部署与管理1.什么是harbor2.Harbor的特性3.Harbor的构成4.harbor部署及配置5.客户端测试 三、Harbor维护1.创建2.普通用户操作私有仓库3.日…...
尚硅谷SpringMVC (5-8)
五、域对象共享数据 1、使用ServletAPI向request域对象共享数据 首页: Controller public class TestController {RequestMapping("/")public String index(){return "index";} } <!DOCTYPE html> <html lang"en" xmln…...
jupyter notebook中查看python版本的解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
动态字符串 String (完整源码)
C自学精简教程 目录(必读) C数据结构与算法实现(目录) 本文的实现基本上和 动态数组 vector 是一样的。 因为大部分接口都一样。 所以,本文就直接给出全部的源码和运行结果。 //------下面的代码是用来测试你的代码有没有问题的辅助代码…...
【深度学习】实验05 构造神经网络示例
文章目录 构造神经网络1. 导入相关库2. 定义一个层3. 构造数据集4. 定义基本模型5. 变量初始化6. 开始训练 构造神经网络 注明:该代码用来训练一个神经网络,网络拟合y x^2-0.5noise,该神经网络的结构是输入层为一个神经元,隐藏层…...
用了这么久SpringBoot却还不知道的一个小技巧
前言 你可能调第三方接口喜欢启动application,修改,再启动,再修改,顺便还有个不喜欢写JUnitTest的习惯。 你可能有一天想要在SpringBoot启动后,立马想要干一些事情,现在没有可能是你还没遇到。 那么SpringB…...
Websocket、SessionCookie、前端基础知识
目录 1.Websocket Websocket与HTTP的介绍 不同使用场景 Websocket链接过程 2.Session&Cookie Cookie的工作原理 Session的工作原理 区别 3.前端基础知识 1.Websocket Websocket与HTTP的介绍 HTTP: 1.HTTP是单向的,客户端发送请求࿰…...
【云原生进阶之PaaS中间件】第一章Redis-2.4缓存更新机制
1 缓存和数据库的数据一致性分析 1.1 Redis 中如何保证缓存和数据库双写时的数据一致性? 无论先操作db还是cache,都会有各自的问题,根本原因是cache和db的更新不是一个原子操作,因此总会有不一致的问题。想要彻底解决这种问题必须…...
Qt——事件处理详解
Qt事件处理 一、事件基础 事件是Qt应用程序中的基本构建块,它们代表了一些特定的行为或状态变化。事件可以是鼠标点击、键盘输入、窗口大小改变、定时器事件等。每个事件都是一个对象,继承自QEvent类。 二、事件常见类型 Qt中的事件分为多种类型&…...
基于位置管理的企业员工考勤打卡系统设计 微信小程序
员工考勤打卡系统设计app是针对员工必不可少的一个部分。在公司发展的整个过程中,员工考勤打卡系统设计app担负着最重要的角色。为满足如今日益复杂的管理需求,各类员工考勤打卡系统设计app程序也在不断改进。本课题所设计的 MVC基于HBuilder X的员工考勤…...
adb 查找应用包名,应用 Activity 等信息
列出设备上的包 不使用参数:adb shell pm list packages,打印设备/模拟器上的所有软件包 根据包名查看应用的activity 命令: dumpsys package 包名 adb shell dumpsys package 包名 petrel-cv96d:/data/app # dumpsys package com.instal…...
八、SpringBoot集成Kafka
目录 一、添加依赖二、SpringBoot 生产者三、SpringBoot 消费者 一、添加依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><depend…...
联网智能实时监控静电离子风机的工作流程
联网智能实时监控静电离子风机是通过将静电离子风机与互联网连接,实现对其状态和性能的远程监控和管理。 具体实现该功能的方法可以包括以下几个步骤: 1. 传感器安装:在静电离子风机上安装适当的传感器,用于感知相关的参数&…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
