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. 传感器安装:在静电离子风机上安装适当的传感器,用于感知相关的参数&…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
