深入理解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.rhkb.cn/news/331176.html

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

相关文章

CentOS 7安装/卸载Grafana

说明:本文介绍CentOS 7操作系统如何安装/卸载Grafana; 安装 Step1:下载rpm文件 敲下面的命令,下载grafana的rpm文件 wget https://dl.grafana.com/oss/release/grafana-7.3.7-1.x86_64.rpmStep2:安装grafana 敲下…

Redis常见数据类型(6)-set, zset

目录 Set 命令小结 内部编码 使用场景 用户画像 其它 Zset有序集合 普通指令 zadd zcard zcount zrange zrevrange ​编辑 zrangebyscore zpopmax/zpopmin bzpopmax/bzpopmin zrank/zrevrank zscore zrem zremrangebyrank zremrangebyscore Set 命令小结 …

图像上下文学习|多模态基础模型中的多镜头情境学习

【原文】众所周知,大型语言模型在小样本上下文学习(ICL)方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口,为探索其执行 ICL 的能力提供了机会,并提供了更多演示示例。在这项工作中,我…

以太坊(3)——智能合约

智能合约 首先明确一下几个说法(说法不严谨,为了介绍清晰才说的): 全节点矿工 节点账户 智能合约是基于Solidity语言编写的 学习Solidity语言可以到WFT学院官网(Hello from WTF Academy | WTF Academy)…

Go语言的内存泄漏如何检测和避免?

文章目录 Go语言内存泄漏的检测与避免一、内存泄漏的检测1. 使用性能分析工具2. 使用内存泄漏检测工具3. 代码审查与测试 二、内存泄漏的避免1. 使用defer关键字2. 使用垃圾回收机制3. 避免循环引用4. 使用缓冲池 Go语言内存泄漏的检测与避免 在Go语言开发中,内存泄…

Linux基础(五):常用基本命令

从本节开始,我们正式进入Linux的学习,通过前面的了解,我们知道我们要以命令的形式使用操作系统(使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。),因此,我们是很有…

win32-鼠标消息、键盘消息、计时器消息、菜单资源

承接前文: win32窗口编程windows 开发基础win32-注册窗口类、创建窗口win32-显示窗口、消息循环、消息队列 本文目录 键盘消息键盘消息的分类WM_CHAR 字符消息 鼠标消息鼠标消息附带信息 定时器消息 WM_TIMER创建销毁定时器 菜单资源资源相关菜单资源使用命令消息的…

634 · 单词矩阵

链接&#xff1a;LintCode 炼码 - ChatGPT&#xff01;更高效的学习体验&#xff01; . - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; class Solution { public: struct Trie {Trie() {next.resize(26, nullptr);end false;} std::vector<Trie*> next; b…

Python高级进阶--dict字典

dict字典⭐⭐ 1. 字典简介 dictionary&#xff08;字典&#xff09; 是 除列表以外 Python 之中 最灵活 的数据类型&#xff0c;类型为dict 字典同样可以用来存储多个数据字典使用键值对存储数据 2. 字典的定义 字典用{}定义键值对之间使用,分隔键和值之间使用:分隔 d {中…

DT浏览器有一些特点和优势,可能是人们选择使用的原因

DT浏览器有一些特点和优势&#xff0c;可能是人们选择使用的原因&#xff1a; - 好评如潮&#xff1a;DT浏览器在网络上获得了众多用户的好评&#xff0c;口碑良好。 - 使用微软搜索引擎技术&#xff1a;DT浏览器采用了微软的搜索引擎技术&#xff0c;在搜索内容上提供了国内…

Unity 实现心电图波形播放(需波形图图片)

实现 在Hierarchy 面板从2D Object 中新建一个Sprite&#xff0c;将波形图图片的赋给Sprite。 修改Sprite 的Sprite Renderer 组件中Draw Mode 为Tiled, 修改Sprite Renderer 的Size 即可实现波形图播放。 在Hierarchy 面板从2D Object 中新建一个Sprite Mask 并赋以遮罩图片…

【qt】标准型模型 下

标准型模型 一.前言二.预览数据1.获取表头2.获取数据项 三.保存文件1.文件对话框获取保存文件名2.用文件名初始化文件对象3.打开文件对象4.用文件对象初始化文本流5.写入数据 四.格式1.居右2.居中3.居左4.粗体 五.模型的信号1.解决粗体action问题2.状态栏显示信息 六.总结 一.前…

HarmonyOS鸿蒙应用开发——安装与配置

今天脑子又抽风&#xff0c;前端转完学后端之后&#xff0c;今天大周末早上醒来突然又想学鸿蒙了&#xff0c;刚好有个比赛需要用到鸿蒙&#xff0c;于是乎我就随便点开b站看了一下鸿蒙视频&#xff0c;然后马上来写这篇博客&#xff0c;后续我的鸿蒙的博客可能会跳着、不连续地…

【Apache Doris】周FAQ集锦:第 4 期

【Apache Doris】周FAQ集锦&#xff1a;第 4 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

学AI绘图【300集SD新课】--Stable Diffusion教程

学AI绘图需要以下步骤&#xff1a; 明确目标和需求&#xff1a;首先明确设计图的目的&#xff0c;是用于展示算法流程、模型结构还是其他目的。选择合适的工具&#xff1a;根据需求选择合适的绘图工具&#xff0c;如Visio、PowerPoint、Adobe Illustrator等。绘制草图&#xf…

uni-app 微信 支付宝 小程序 使用 longpress 实现长按删除功能,非常简单 只需两步

1、先看效果 2、直接上代码 ui结构 <view class"bind" longpress"deleteImage" :data-index"index"><view class"bind_left">绑定设备</view><view class"bind_right"><view class"bind_t…

5.24学习记录

[FSCTF 2023]ez_php2 比较简单的pop链 <?php highlight_file(__file__); Class Rd{public $ending;public $cl;public $poc;public function __destruct(){echo "All matters have concluded";die($this->ending);}public function __call($name, $arg){for…

Linux服务器安装docker,基于Linux(openEuler、CentOS8)

本实验环境为openEuler系统(以server方式安装)&#xff08;CentOS8基本一致&#xff0c;可参考本文) 目录 知识点实验 知识点 实验 查看yum源docker版本 dnf search docker安装docker dnf install dockerdocker --version

VScode SSH连接远程服务器报错

一、报错 通过VScode SSH插件远程连接服务器&#xff0c;输入密码后没有连接成功&#xff0c;一直跳出输入密码界面&#xff0c;在输出界面里&#xff0c;一直是Waiting for server log或者是显示Cannot not find minimist 二、处理 &#x1f431;&#xff1a; 这个时候应该…

【2024最新华为OD-C卷试题汇总】传递悄悄话的最长时间(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 前…