深入理解NumPy与Pandas【numpy模块及Pandas模型使用】

二、numpy模块及Pandas模型使用

numpy模块

1.ndarray的创建

import numpy as np
a=np.array([1,2,3,4])
b=np.array([[1,2,3,4],[5,6,7,8]])
print(a) #[1 2 3 4]
print(b) #[[1 2 3 4][5 6 7 8]]

1.1使用array()函数创建

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

名称描述
object数组或嵌套的数列
dtype数组元素的数据类型,可选
copy对象是否需要复制,可选
order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok默认返回一个与基类类型一致的数组
ndmin指定生成数组的最小维度

1.2使用arange()函数

根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。

numpy.arange(start, stop, step, dtype)

1.3使用linespace()函数

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

根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。

和range类似

注意:np.linspace形成的数组一定包括范围的首位两个元素,则步长为(end - start) / (length - 1)。而np.arange是自己指定的步长(默认为1)也就意味着形成的数组不一定包括末尾数

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数说明:

start: 开始值

stop: 结束值

num=50: 等差数列中默认有50个数

endpoint=True: 是否包含结束值

retstep=False: 是否返回等差值(步长)

dtype=None: 元素类型

1.4使用logspace()函数

用于创建一个一维数组,一个等比数列构成的,等间隔的一维数组

数据为对数函数log的值

参数说明:

start: 开始值

stop: 结束值

num=50: 数列中默认有50个数

endpoint=True: 是否包含结束值

base: log函数的底数,默认为10

dtype=None: 元素类型

1.5使用empty()函数创建

作用创建一个指定形状的未初始化的数组,由于未初始化,所以输出是随机值

numpy.empty(shape, dtype = none, order = 'C')

1.6使用zeros(),ones(),full(),eye()函数

三个函数类似于empty(),创建指定形状的数组,

不过zeros是以0来初始化,ones是以1来初始化,其中的1和0 默认为浮点数,

full函数()可以以自己指定的值来填充,所以会多一个参数fill_value原型,

np.eye(N, M=None, k=0, dtype=float):对角线为1其他的位置为0的二维数组,

其中N:行数,M:列数,k=0:向右偏移0个位置

numpy.zeros(shape, dtype = float, order = 'C’)
numpy.ones(shape, dtype = float, order = 'C’)
numpy.full(shape, fill_value,dtype = float, order = 'C’)
numpy.eye(N, M=None, k=0, dtype=float)

1.7生成随机数:使用random.random(),random.randint(),random.rand(),random.randn(),random.choice()函数

random([size]):生成size个[0.0,1.0)的随机数

randint(low,[high,size,dtype]):生成指定范围的任意维度的随机整数,数组元素的范围[low, high)区间

rand(d0,d1,…,dn):[0,1)之间随机数,具有均匀分布

randn(d0,d1,…,dn):返回具有标准正态分布(均值为0,方差为1)Choice(a,size=None,replace=True):从指定的一维数组中生成随机数

1.8使用asarray()函数

从已有的数组创建数组

a1=np.zeros([3,2])
a2=np.asarray(a1)
print(a1)
print(a2)
tup=(1,2,3,4)
a3=np.asarray(tup)
print(a3)
x=((1,2,3),(4,5,6),(7,8,9))
a=np.asarray(x)
print(a)
'''
[[0. 0.][0. 0.][0. 0.]]
[[0. 0.][0. 0.][0. 0.]]
[1 2 3 4]
[[1 2 3][4 5 6][7 8 9]]
'''

1.9使用frombuffer()函数

实现动态数组

numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。

Pandas模块

1.DataFrame对象创建

二维带行标签和列标签的数组

df = pd.DataFrame(data, index=index, columns=columns)

其中 index是行标签, columns是列标签,data可以是下面的数据

由一维 numpy数组,list, Series构成的字典

二维 numpy数组

一个 Series

另外的 DataFrame对象

属性名含义
len(x)表示对象值的长度。
size表示对象值的长度。
index表示列索引数。
columns表示行索引数。
dtypes表示列的数据类型。
shape表示有多少行列.
values表示对象值,即二维数组。
info表示对象的基本信息:索引情况、各列的名称、数据数量、数据类型等。
head(num)从头部开始显示几行,参数um表示显示的行数,默认为5行。
tail(num)从末尾开始显示几行,参数num表示显示的行数,默认为5行。

数据选取

DataFrame.loc[行索引名称或条件,列索引名称] 【基于索引名称】

DataFrame.iloc[行索引位置, 列索引位置] 【完全基于位置】(只接收int)

2.分组统计函数——groupby函数

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)

功能: 根据给定的条件将数据拆分成组

        每个组否可以独立应用函数(sum,mean,min)

        将结果合并到一个数据结构中

3.面向列的聚合函数——agg函数

DataFrame.agg(func=None, axis=0, *args, **kwargs)

1.简单的列或行统计

默认对列统计(axis=0)

2.对每一个列数据应用同一个函数————func参数传入一个函数

3.对某列数据应用不同函数————func参数传入多个函数

元组(name,function):自定义name替换function名

4.对不同列数据应用不同函数————func参数传入字典{‘列名’:’函数名’}

4.transform() 函数:用于保持原始 DataFrame 结构的元素级转换

总是返回一个与原始 DataFrame 或 Series 相同形状的 DataFrame 或 Series。

即使只对一列或一行应用函数,transform() 也会返回一个完整的 DataFrame 或 Series。

DataFrame.transform(func=None, *args, **kwargs)

返回结果有两种:1.可以广播的标量值(np.mean)  2.可以是与分组大小相同结果的数组。

df=pd.DataFrame(np.arange(36).reshape(6,6),columns=list('abcdef'))
df['key']=pd.Series(list('aaabbb'),name='key')
print(df)
group1=df.groupby(['key']).agg('mean')
print(group1)
group2=df.groupby(['key']).transform('mean')
print(group2)
'''a  b  c  d  e  f  key
0  0  1  2  3  4  5    a
1  6  7  8  9 10 11    a
2 12 13 14 15 16 17    a
3 18 19 20 21 22 23    b
4 24 25 26 27 28 29    b
5 30 31 32 33 34 35    ba  b  c  d  e  f
key                
a  3  4  5  6  7  8
b 24 25 26 27 28 29a     b     c     d     e     f
0   6.0   7.0   8.0   9.0  10.0  11.0
1   6.0   7.0   8.0   9.0  10.0  11.0
2   6.0   7.0   8.0   9.0  10.0  11.0
3  24.0  25.0  26.0  27.0  28.0  29.0
4  24.0  25.0  26.0  27.0  28.0  29.0
5  24.0  25.0  26.0  27.0  28.0  29.0
'''

5.apply() 函数:最通用的函数

DataFrame.apply(func=None, axis=0,raw=False,result_type=None,*args, **kwds)

func:要应用的函数。它可以是一个 Python 函数,也可以是一个字符串(例如 'sum'、'mean' 等)。

axis:应用函数的轴。如果 axis=0(默认值),则函数将沿着列方向应用;如果 axis=1,则函数将沿着行方向应用。

raw:是否将底层数据传递给函数。如果 raw=True,则传递底层 NumPy 数组;否则传递 Series 对象。

result_type:结果类型。可以是 'expand'、'reduce' 或 'broadcast'。

args:要传递给函数的额外参数。 *kwds:要传递给函数的额外关键字参数。

data={'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]
}
df=pd.DataFrame(data)
print(df)
result=df.apply(lambda x:x.mean())
result1=df.apply('mean')
print(result,result1,sep='\n')
result=df.apply(lambda x:x+1)
print(result)
'''
A    2.0
B    5.0
C    8.0
dtype: float64
A    2.0
B    5.0
C    8.0
dtype: float64A  B  C
0  2  5  8
1  3  6  9
2  4  7  10
'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光伏项目怎么做预算?

随着可再生能源行业的蓬勃发展,光伏行业也得到了扩张。许多想要加入光伏项目投资的人,都在为怎样为项目做预算而苦恼,今天我就来跟大家分析下可以怎么做。 一、了解市场需求,确定预算目标 在制定光伏项目预算方案之前&#xff0c…

《SpringBoot》系列文章目录

SpringBoot是由Pivotal团队提供的全新框架,旨在简化新Spring应用的初始搭建以及开发过程。以下是一些关于SpringBoot的详细介绍: 设计目的:SpringBoot通过特定的方式来进行配置,使得开发人员不再需要定义样板化的配置&#xff0c…

链路初始化和训练

一、总览 链路初始化和训练,由物理层进行控制,是一个基于硬件的过程。初始化设备的链路和端口,使得设备能够收发报文,在链路上正常通信。 在reset后由硬件自动启动完整的训练过程,并由LTSSM管理。 1 位锁定 训练开始…

犀牛8 for Mac/Win:重塑三维建模的新标杆

在数字创意的浪潮中,犀牛8(Rhinoceros 8)作为一款卓越的三维建模软件,以其强大的功能和出色的性能,在Mac和Windows平台上都赢得了广大设计师和工程师的青睐。 犀牛8不仅继承了前代产品的优秀基因,更在细节…

Nginx的集群负载均衡(nginx构建tomcat集群案例)

一 .Nginx的集群负载均衡 1.nginx 集群负载均衡示意图 2.四层负载均衡和7层负载均衡 LVS 四层负载均衡(常用); Haproxy四层负载均衡;Nginx 四层负载均衡; Haproxy七层负载均衡;Nginx 七层负载均衡(常用); 3.nginx构建tomcat集群 步骤1:安装tomcat 步骤2:nginx配置tom…

夸夸生肖属鼠的女性朋友

属鼠人一生的命运受到许多因素的影响,包括性格、家庭、教育、环境等。属鼠人性格外向、求知欲强、善解人意、善于结交各种各样的朋友,有丰富的人脉,容易得到他人的帮助和支持。 属鼠的人聪明、机智,他们善于观察,富有…

在线改图片怎么做更简单?快速修改图片尺寸的方法

现在一般拍摄出的图片尺寸都会比较大,想要上传大网上的一些平台展示时,经常会受到平台的限制,无法将图片正常上传到平台,那么如何将图片尺寸快速调整呢?比较简单的一种方式,可以通过在线改图片的工具来实现…

一个开源的个人主页模板,可以通过 Github Actions 来进行自动构建。

無名の主页 简单的小主页,原来的看够了,重新弄了一个 主页的 Logo 字体已经过压缩,若用本站 Logo 以外的字母会变回默认字体,这里是 完整字体,若无法下载,可将字体目录下的 Pacifico-Regular-all.ttf 进行替…

Linux程序开发(十一):进程与进程间通信设计之趣味猫咪抓老鼠游戏

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

他用AI,抄袭了我的AI作品

《大话西游》里面有一句经典台词:每个人都有一个妈,但是“你妈就一定是你妈吗?” 用AI创作的艺术作品,也走进类似的困境:如何证明你用AI生成的作品,就是你的作品? 近日,腾讯科技独…

SpringCloudAlibaba:6.3SpringBoot接入RocketMQ

依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 htt…

【C++提高编程-04】----C++之Vector容器实战

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

STM32+CubeMX移植SPI协议驱动W25Q16FLash存储器

STM32CubeMX移植SPI协议驱动W25Q16FLash存储器 SPI简介拓扑结构时钟相位&#xff08;CPHA&#xff09;和时钟极性&#xff08; CPOL&#xff09; W25Q16简介什么是Flash&#xff0c;有什么特点&#xff1f;W25Q16内部块、扇区、页的划分引脚定义通讯方式控制指令原理图 CubeMX配…

iBarcoder for Mac v3.15.1中文激活版:让条形码生成变得如此简单

在现代社会&#xff0c;条形码无处不在&#xff0c;从超市商品到物流包裹&#xff0c;都离不开它的身影。iBarcoder for Mac作为一款简单易用的条形码生成软件&#xff0c;让条形码的生成变得如此简单。 iBarcoder for Mac v3.15.1中文激活版下载 无论你是需要为商品添加条形码…

Scrapy框架简单介绍及Scrapy项目编写详细步骤

引言 Scrapy是一个用Python编写的开源、功能强大的网络爬虫框架&#xff0c;专为网页抓取和数据提取设计。它允许开发者高效地从网站上抓取所需的数据&#xff0c;并通过一系列可扩展和可配置的组件来处理这些数据。Scrapy框架的核心组成部分包括&#xff1a; Scrapy Engine&…

aws glue配置读取本地kafka数据源

创建连接时填写本地私有ip地址&#xff0c;选择网络配置 配置任务选择kafka作为数据源 但是执行任务时日志显示连接失败 文档提到只能用加密通信 如果您希望与 Kafka 数据源建立安全连接&#xff0c;请选择 Require SSL connection (需要 SSL 连接)&#xff0c;并在 Kafka priv…

python批发模块的调试之旅:从新手到专家的蜕变

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、调试技巧的重要性 二、批发模块调试的实战演练 1. 设置断点 2. 逐行执行代码 3. 观察…

SM2258G专用SSD开卡工具(三星闪存),后附工具下载

工具下载&#xff1a; https://download.csdn.net/download/weixin_43097956/89354302

视频怎么转换成二维码图片?视频做成二维码播放的方法

怎样在电脑上制作可以播放视频的二维码呢&#xff1f;很多日常生活中&#xff0c;很多的场景或者物品都会有自己的二维码&#xff0c;其他人通过扫码就可以获取对应的内容。有很多场景下会把视频转换二维码&#xff0c;通过扫码在手机上查看视频内容&#xff0c;比如产品介绍、…

水表电表远程抄表是什么?

1.简述&#xff1a;水表电表远程抄表技术性 随着时代的发展&#xff0c;传统式手动抄表方法早已被更为高效、智能化的远程抄表系统所替代。水表电表远程抄表&#xff0c;说白了&#xff0c;就是利用互联网技术完成对水表和电表读数的远程数据采集管理方法&#xff0c;大大提升…