当前位置: 首页 > news >正文

Python的Numpy、Pandas和Matplotlib(随笔)

Python--Numpy
import numpy as np

1、扩展程序库(维度数组与矩阵运算、针对数组运算提供大量的数学函数库)

2、N维数组对象对象:ndarray(别名array,用于存放同类型元素的多维数组
,以 0 下标为开始进行集合中元素的索引。

3、属性:
image

4、创建Numpy数组:
使用array()函数,在调用该函数时传入一个列表或者元组。
image

linspace 函数用于创建一个一维数组,数组是一个等差数列构成的
image

logspace 函数用于创建一个对数等比数列
image

zeros()函数创建元素值都是0的数组;通过ones()函数创建元素值都为1的数组。
image

empty()函数创建一个新的数组,该数组只分配了内存空间,它里面填充的元素都是随机的。
image

arange()函数可以创建一个等差数组,它的功能类似于range(),只不过arange()函数返回的结果是数组,而不是列表。根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray
image

有些数组元素的后面会跟着一个小数点,而有些元素后面没有,比如1和1.,产生这种现象,主要是因为元素的数据类型不同所导致的。

5、数据类型:
NumPy的数据类型是由一个类型名和元素位长的数字组成。(例如float64)

常用的数据类型如右表所示:
image

每一个NumPy内置的数据类型都有一个特征码,它能唯一标识一种数据类型。
image

ndarray.dtype可以创建一个表示数据类型的对象,如果希望获取数据类型的名称,则需要访问name属性进行获取。
image

数据类型可以通过astype()方法进行转换。
image

6、数组运算
image

7、ndarray的索引和切片、排序
索引
一维数组
image

多维数组
image

想获取二维数组的单个元素,则需要通过形如“arr[x,y]”的索引来实现,其中x表示行号,y表示列号。

切片
image
image

排序
可以通过sort()方法实现
image

检索
all()函数用于判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,否则返回False。
image

any()函数用于判断整个数组中的元素至少有一个满足条件就返回True,否则就返回False。
image

8、数组的转置
数组的转置指的是将数组中的每个元素按照一定的规则进行位置变换。
T属性:进行轴对换而已。
transpose()方法:对数组的shape进行调换时,需要以元组的形式传入shape的编号,比如(1,0,2)。
image

只需要转换其中的两个轴,这时可以使用swapaxes()方法实现,该方法需要接受一对轴编号,比如(1,0)。
image

9、统计函数
NumPy 数组中提供了一些简单的统计函数,可以帮助我们计算数组的最大、最小值、平均值、中位数等。

最大、最小值¶
可以使用.max()/.min()或np.amax()/np.amin(),计算数组的最大最小值
a = np.random.randint(low=0,high=99, size=(7,9))
print (a,"\n",a.max(),"\n",a.min())

平均值
可以使用np.mean()/np.average()或.mean()方法获取数组中所有元素的均值
a.mean()

中位数
使用np.median()计算数组的中位数
np.median(a)

标准差
使用np.std计算标准差
np.std(a)

Python--Pandas
import pandas as pd

1、Pandas是基于NumPy数组构建的,也是Python语言的第三方库,Pandas使数据预处理、清洗、分析工作变得更快更简单,主要用于数据分析。专门为处理表格和混杂数据设计的,相当于Python的Excel,而Numpy更适合处理统一的数组数据。

2、对象
series用于保存一维类的数据,DataFrame用于保存二维类的数据,panel(不常用)用于保存三维类或者可变维度的数据。

3、
3.1创建Dataframe对象
pd.DataFrame(data=None, index=None, columns = None, dtype=None)
data: 可以是嵌套列表,二维数组,字典或者DataFrame对象
index: 可以是索引对象或者类数组对象
跟Series一样,index=None时,则会按照默认的0,1,2...顺序建立索引
columns: 可以是索引对象或者类数组对象,其含义是列索引

字典法创建

data = {"grammer":['Python', 'C', 'Java', 'GO', 'css', 'SQL', 'PHP', 'Python'],
"score":[1.0, 2.0, 6.0, 4.0, 5.0, 6.0, 7.0, 10.0]}
df = pd.DataFrame(data)
df

先创建空的,再加入列

df1 = pd.DataFrame()
df1['ID'] = [0,1,2]
df1
In [ ]:
df1['name'] = ['a','b','c']
df1

3.2DataFrame对象常用基本属性
1.查看数据维度、查看数据形状
dataframe.ndim
dataframe.shape

2.查看数据的行名称
dataframe.index

3.查看数据的列名称
dataframe.columns

4.查看数据的前几行:(n为设置查看几行,默认为5行)
dataframe.head(n)

5.查看数据的后几行:(n为设置查看几行,默认为5行)
dataframe.tail(n)
df.iloc[-5:, :]

6.数据转置
dataframe.T
7.查看数据是否存在空值(可以连用,dataframe.isnull().sum()统计列中含有缺失值的个数,
dataframe.isnull().any().sum()统计含有缺失值的列数)
dataframe.isnull()

8.按照行名称或列名称进行排序:(axis参数:指定排序的数轴;ascending:默认按照升序排序;当设置为False时,按照降序排序)
dataframe.sort_index(axis=1, ascending=False)

9.按照数据值排序:(axis参数指定排序的数轴;by参数指定按照哪一列或行进行排序;ascending参数指定是升序还是降序)
dataframe.sort_values(by='列名, ascending=False, axis=0)

10.对数据直接进行统计分析(查看描述性统计分析)
dataframe.describe()

11.打印DataFrame对象的信息
dataframe.info()

12.查看数据类型
dataframe.dtypes

13.根据数据类型选取特征
dataframe.select_dtypes(include=None, exclude=None)

14.查看列数

方法一:

len(df.columns)

方法二:

df.shape[1]

15.查看某一列共有几种类别
df['grammer'].nunique()
查看某一列每个类别的个数
df['grammer'].value_counts()

4、数据的读取与保存
4.1 读取excel文件
pd.read_excel('./data/xxx.xlsx')

括号内为excel文件路径

4.2 读取csv文件¶
pd.read_csv('./xxx/data1.csv')

4.3将DataFrame保存成csv文件¶
df.to_csv('xxx.csv')

Python--Matplotlib(可视化数据)
导入相关包:import matplotlib.pyplot as plt
线图:plot()
体现数据变化趋势
image

散点图:scatter()
体现数据之间的相关性
image

条形图:bar()
体现数据之间的大小
image

饼图:pie()
体现数据占比
image

直方图和密度图:hist()
体现数据的分布趋势(正态分布)
image

多图合并显示:subplot()和subplots() (一张画布多张图)
x:指定x轴数据 y:指定y轴数据
image

linestyle: 指定折线的类型(实线、虚线、点虚线、点点线……),默认文实线
linewidth: 指定折线的宽度
image
image

marker:可以为折线图添加点,该参数设置点的形状
markersize:设置点的大小
markeredgecolor:设置点的边框色
makerfactcolor:设置点的填充色
image
image
image
image

lable:为折线图添加标签,类似于图例的作用
image

http://www.rkmt.cn/news/21118.html

相关文章:

  • CF2146E
  • 【博客导航】
  • 部署向量数据库milvus
  • 实验一:现代C++初体验
  • 软件工程学习日志2025.10.14
  • CSP-S模拟31 笔记
  • java基础7-字符串
  • 乐云具身活动体验
  • 10.14 闲话:KTT
  • 汽车价格战全面熄火了?不卷价格该卷什么? - 教程
  • 详细介绍:并发编程原理与实战(三十三)AQS框架下手写简易可重入锁的实战解析
  • U-Boot启动探秘:从汇编到命令行的奇幻之旅 - 指南
  • 两数相加-leetcode
  • 线程共享区域
  • 运行时数据区
  • AI4S Cup学习赛 - 超导体临界温度预测
  • Linux之线程池 - 指南
  • 5G x 工业应用:探索德承工控机在5G工业应用中所扮演的关键角色 - 实践
  • 背叛 仇恨 消极 如刀子刺穿了铁心 嘲笑 嗤之以鼻 漠然后只剩下孤寂
  • 【论文复现上新】AAAI2025!北理工团队提出FBRT-YOLO:面向实时航拍图像更快更好的目标检测 |计算机视觉|目标检测
  • 亚马逊因暗黑模式订阅设计支付25亿美元和解金
  • 2025年排烟风机厂家推荐榜:混流风机|管道风机|排烟风机|离心风机|轴流风机|轴流风机厂家,专注高效消防与节能,助力多行业绿色升级
  • 详细介绍:iCloud照片共享:在家庭内外分享iCloud照片
  • 对static新的认识
  • Excel - lookup()
  • 2025 佛山铝合金/系统/断桥铝/耐用/推拉/封阳台/别墅/静音门窗厂家品牌实力推荐:聚焦技术与服务的五大优选标杆
  • 说说新版畅联云的一些重要约定
  • App.vue(完整可运行示例)
  • Avalonia Behaviors 在 StackPanel 空白处无效问题解析与解决方案
  • 完整教程:Django 入门:快速构建 Python Web 应用的强大框架