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. 传感器安装:在静电离子风机上安装适当的传感器,用于感知相关的参数&…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
Linux操作系统共享Windows操作系统的文件
目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...
基于谷歌ADK的 智能产品推荐系统(2): 模块功能详解
在我的上一篇博客:基于谷歌ADK的 智能产品推荐系统(1): 功能简介-CSDN博客 中我们介绍了个性化购物 Agent 项目,该项目展示了一个强大的框架,旨在模拟和实现在线购物环境中的智能导购。它不仅仅是一个简单的聊天机器人,更是一个集…...
Shell 解释器 bash 和 dash 区别
bash 和 dash 都是 Unix/Linux 系统中的 Shell 解释器,但它们在功能、语法和性能上有显著区别。以下是它们的详细对比: 1. 基本区别 特性bash (Bourne-Again SHell)dash (Debian Almquist SHell)来源G…...
【R语言编程——数据调用】
这里写自定义目录标题 可用库及数据集外部数据导入方法查看数据集信息 在R语言中,有多个库支持调用内置数据集或外部数据,包括studentdata等教学或示例数据集。以下是常见的库和方法: 可用库及数据集 openintro库 该库包含多个教学数据集&a…...
