8个Python高效数据分析的技巧,不看肯定后悔~

news2024/11/25 23:32:44

本文介绍的数据分析方法,不仅能够提升运行效率,还能够使代码更加“优美”。

不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析,这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加“优美”。

1、一行代码定义List

定义某种列表时,写For 循环过于麻烦,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题:
在这里插入图片描述
下面是使用For循环创建列表和用一行代码创建列表的对比:

x = [1,2,3,4]

out = []

for item in x:

out.append(item**2)

print(out)

[1, 4, 9, 16]

vs.

x = [1,2,3,4]

out = [item**2 for item in x]

print(out)

[1, 4, 9, 16]

2、Lambda表达式

厌倦了定义用不了几次的函数? Lambda表达式是你的救星! Lambda表达式用于在Python中创建小型,一次性和匿名函数对象。 它能替你创建一个函数。

lambda表达式的基本语法是:

lambda arguments: expression

请注意,只要有一个lambda表达式,就可以完成常规函数可以执行的任何操作。 你可以从下面的例子中,感受lambda表达式的强大功能:

double = lambda x: x * 2

print(double(5))

10

3、Map和Fiter

一旦掌握了lambda表达式,学习将它们与Map和Filter函数配合使用,可以实现更为强大的功能。

具体来说,map通过对列表中每个元素执行某种操作并将其转换为新列表。 在本例中,它遍历每个元素并乘以2,构成新列表。 请注意,list()函数只是将输出转换为列表类型。

Map

seq = [1, 2, 3, 4, 5]

result = list(map(lambda var: var*2, seq))

print(result)

[2, 4, 6, 8, 10]

Filter函数接受一个列表和一条规则,就像map一样,但它通过比较每个元素和布尔过滤规则来返回原始列表的一个子集。

Filter

seq = [1, 2, 3, 4, 5]

result = list(filter(lambda x: x > 2, seq))

print(result)

[3, 4, 5]

4、Arange和Linspace

Arange返回给定步长的等差列表。 它的三个参数start、stop、step分别表示起始值,结束值和步长, 请注意,stop点是一个“截止”值,因此它不会包含在数组输出中。

#np.arange(start, stop, step)

np.arange(3, 7, 2)

array([3, 5])

Linspace和Arrange非常相似,但略有不同。 Linspace以指定数目均匀分割区间。 所以给定区间start和end,以及等分分割点数目num,linspace将返回一个NumPy数组。 这对绘图时数据可视化和声明坐标轴特别有用。

#np.linspace(start, stop, num)

np.linspace(2.0, 3.0, num=5)

array([ 2.0, 2.25, 2.5, 2.75, 3.0])

5、Axis代表什么?

在Pandas中,删除一列或在NumPy矩阵中求和值时,可能会遇到Axis。 我们用删除一列(行)的例子:

df.drop(‘Column A’, axis=1)

df.drop(‘Row A’, axis=0)

如果你想处理列,将Axis设置为1,如果你想要处理行,将其设置为0。 但为什么呢? 回想一下Pandas中的shape

df.shape

(# of Rows, # of Columns)

从Pandas DataFrame中调用shape属性返回一个元组,第一个值代表行数,第二个值代表列数。如果你想在Python中对其进行索引,则行数下标为0,列数下标为1,这很像我们如何声明轴值。

6、Concat,Merge和Join

如果您熟悉SQL,那么这些概念对您来说可能会更容易。 无论如何,这些函数本质上就是以特定方式组合DataFrame的方式。 在哪个时间跟踪哪一个最适合使用可能很困难,所以让我们回顾一下。

Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴):
IMG_257
Merge将多个DataFrame合并指定主键(Key)相同的行:
IMG_258
Join和Merge一样,合并了两个DataFrame。 但它不按某个指定的主键合并,而是根据相同的列名或行名合并:
在这里插入图片描述
7、Pandas Apply

Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy的数组。

Apply将一个函数应用于指定轴上的每一个元素。 使用Apply,可以将DataFrame列(是一个Series)的值进行格式设置和操作,不用循环,非常有用!

df = pd.DataFrame([[4, 9],] * 3, columns=[‘A’, ‘B’])

df

A B

0 4 9

1 4 9

2 4 9

df.apply(np.sqrt)

A B

0 2.0 3.0

1 2.0 3.0

2 2.0 3.0

df.apply(np.sum, axis=0)

A 12

B 27

df.apply(np.sum, axis=1)

0 13

1 13

2 13

8、Pivot Tables

最后是Pivot Tables。 如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。 Pandas内置的pivot_table函数以DataFrame的形式创建电子表格样式的数据透视表,,它可以帮助我们快速查看某几列的数据。 下面是几个例子:非常智能地将数据按照“Manager”分了组:

pd.pivot_table(df, index=[“Manager”, “Rep”])
IMG_260
或者也可以筛选属性值:

pd.pivot_table(df,index=[“Manager”,“Rep”],values=[“Price”])
IMG_261
总结

我希望上面的这些描述能够让你发现Python一些好用的函数和概念。

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

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

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

相关文章

实现CodeWave 低代码开发平台快速应用开发的完整指南

目录 前言1 CodeWave开发流程2 应用创建2.1 新建应用2.2 从应用模板创建应用 3 数据模型设计3.1 实体设计3.2 结构设计3.3 枚举设计 4 逻辑设计4.1 查询数据源设置4.2 组件和属性配置4.3 属性设置与服务端全局变量 5 页面设计5.1 选择页面模板5.2 前端全局变量设计5.3 事件逻辑…

音视频技术开发周刊 | 326

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 全球最强「开源版Gemini」诞生!全能多模态模型Emu2登热榜,多项任务刷新SOTA 最强的全能多模态模型来了!就在近日,智源研究院…

红队打靶练习:SAR: 1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 小结 目录探测 1、gobuster 2、dirsearch WEB CMS 1、cms漏洞探索 2、RCE漏洞利用 提权 get user.txt 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface:…

系统学习Python——装饰器:函数装饰器-[对方法进行装饰:使用嵌套函数装饰方法]

分类目录:《系统学习Python》总目录 如果想要函数装饰器在简单函数和类级别的方法上都能工作,最直接的解决办法在于使用前面文章介绍的状态保持方案之一:把自己的函数装饰器编写为嵌套的def,这样你就不会陷入单一的self实例参数既…

【办公技巧】pdf打印没反应怎么办

正常的PDF文件是可以打印的,如果PDF文件打开之后发现文件不能打印,我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…

找火鸡^^

欢迎来到程序小院 找火鸡 玩法:记忆翻牌游戏,不同关卡会有不同数目的火鸡,卡牌自由滚动,记住火鸡的位置, 规定的时间内找到火鸡所在的位置,快去找火鸡吧^^。开始游戏https://www.ormcc.com/play/gameStart…

江西速欣商务咨询有限公司:债务规划重组的专业法务咨询服务

在财务管理中,债务问题往往成为个人和企业面临的一项重要挑战。江西速欣商务咨询有限公司作为债务问题的专业解决者,致力于为客户提供高效而专业的债务规划重组法务咨询服务,帮助他们摆脱负担,重整财务秩序。 深谙债务规划的专业智…

Python 基础语法01

变量声明 #运算 num 1 num 1 print("num 1",num)num - 1 print("num - 1", num)num * 4 print("num * 4",num)num 3 num % 2 print("num%2",num)num ** 2 print("num ** 2", num)num 9 num // 2 print("num // …

JavaScript 中常用事件

前言: 介绍了什么是事件以及原理,还有常用的事件及使用 **如果演示结果不好理解,可以复制代码到自己的电脑中运行,这样你们可以更好理解也可以研究出好玩的,研究出的话顺便发给我也玩玩🤭 文章目录 什么是事件原理鼠标…

针对工行的LockBit勒索软件攻击表明了全球金融系统对网络攻击的脆弱性

内容概要: 11月8日,工行一家美国子公司被勒索软件入侵导致美国国债交易业务瘫痪,暴露了全球金融系统易受网络攻击的脆弱性。LockBit勒索软件集团声称对工行的攻击负责。工行是世界上资产规模最大的银行,管理着5.7万亿美元。这一网…

轻松提升软件性能:快速学习和使用Memcached

目录 1、前言 2、Memcached的简介 3、Memcached的安装与配置 4、Memcached的数据结构 5、Memcached的常用命令 6、Memcached的高级特性 7、Memcached在系统中如何使用 8、结语 1、前言 Memcached是一个广泛用于提升软件性能的开源内存缓存系统。它可以有效地减少对数据…

代码随想Day55 | 392.判断子序列、115.不同的子序列

392.判断子序列 第一种思路是双指针&#xff0c;详细代码如下&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {//双指针if(s.empty()&&t.empty()) return true;int i0,j0;while(i<t.size()){if(s[j]t[i]) j;if(js.size()) return t…

MySQL触发器的创建、查看、删除、存储过程与触发器的区别等

MySQL触发器 1、什么是触发器2、创建触发器3、查看所有的触发器4、删除触发器5、常见的触发器案例6、存储过程与触发器的区别 1、什么是触发器 简单点来说触发器就是一个特殊的存储过程&#xff0c;不过存储过程需要手动调用&#xff0c;而触发器自动调用。 一张图来简单说明…

GPT编程(1)八分类图像数据集转换为二分类

一个核心问题就是要将这八类数据图片全部重命名&#xff0c;尝试了一步到位 有一个图像数据集&#xff0c;有八个类别amusement,anger,awe,contentment,disgust, excitement, fear,sadness的图片&#xff0c;每张图片被命名为“类别数字”。采用遍历的方式&#xff0c;按顺序阅…

架构设计的核心:从多个维度理论分析

文章目录 一、如何实现高内聚低耦合的架构1、确定边界2、内聚的分类3、耦合的分类4、如何实现高内聚低耦合&#xff08;1&#xff09;耦合关注点&#xff08;2&#xff09;低耦合原则&#xff08;3&#xff09;高内聚原则 二、如何实现可扩展性的架构1、扩展性&#xff1a;核心…

OpenHarmony之系统调用

背景 对于运行L0系统的硬件一般是mcu&#xff0c;资源有限&#xff0c;L0系统没有区分内核态和用户态&#xff0c;所有的代码都在内核态运行&#xff0c;所以不需要系统调用 L2系统用的是Linux内核&#xff0c;所以系统调用跟Linux Kernel的是一样的。 所以我们主要来看看L1系…

构建基础wlan网络 hcia无线

实验 旁挂组网 二层网络 ac为 dhcp的服务器给ap地址 s1给sta的ip地址 DHCP 业务为直接转发 实验步骤 第一步 poe 开启 poe en 开启 第二步 有线连接 vlan的配置 s1 vlan batch 100 101 连接的端口 port link-type trunk port trunk allow-pass …

阶段十-分布式-nginx服务器

一、Nginx简介 Nginx 是高性能的 HTTP 和反向代理的服务器&#xff0c;处理高并发能力是十分强大的&#xff0c;能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。tomcat并发数量理论值是500&#xff0c;实际也就300左右。 1.2 正向代理 正向代理代理的是客户…

文心一言 VS 讯飞星火 VS chatgpt (170)-- 算法导论13.2 3题

三、用go语言&#xff0c;设在图 13-2 左边一棵树中&#xff0c;a、b和c 分别为子树a、β和γ中的任意结点。当结点 x 左旋之后&#xff0c;a、b和c 的深度会如何变化&#xff1f; 文心一言&#xff1a; 在二叉树中&#xff0c;左旋操作是改变节点的子节点顺序。原本的子节点…

高精度定位赛道爆发前夜 谁在强势崛起?|高工微报告

伴随着以NOA为代表的高阶智驾功能加速渗透&#xff0c;高精度定位赛道正进入快速增长通道。 整体技术链路上&#xff0c;高精度定位为高阶智驾的刚需&#xff1a;在“重地图、轻感知”阶段&#xff0c;其结合高精地图发挥作用&#xff1b;在“轻地图、重感知”阶段&#xff0c…