您当前位置:资讯中心 >AI人工智能 >浏览文章

让你的Pandas代码快得离谱的两个技巧

来源:不详 日期:2024/1/19 13:45:00 阅读量:(0)

如果你曾经使用过Pandas处理表格数据,你可能会熟悉导入数据、清洗和转换的过程,然后将其用作模型的输入。然而,当你需要扩展和将代码投入生产时,你的Pandas管道很可能开始崩溃并运行缓慢。在这篇文章中,笔者将分享2个技巧,帮助你让Pandas代码快得离谱,提升数据处理效率并避免常见的陷阱。

技巧1:矢量化操作

在Pandas中,矢量化操作是一种强大的工具,它可以用一种更简洁和高效的方式处理整个数据框的列,而不是逐行循环。

它是如何工作的?

广播是矢量化操作的一个关键要素,它允许您直观地操作具有不同形状的对象。

eg1: 具有3个元素的数组a与标量b相乘,得到与Source形状相同的数组。

eg2: 在进行加法运算时,将形状为(4,1)的数组a与形状为(3,)的数组b相加,结果会得到一个形状为(4,3)的数组。

关于这一点已经有很多文章,并且在深度学习中,大规模的矩阵乘法是非常常见的。在本文中,我们将利用两个简短的例子上进行讨论。

首先,假设您想要计算给定整数在列中出现的次数。以下是 2 种可能的方法。

"""
计算DataFrame X 中 "column_1" 列中等于目标值 target 的元素个数。

参数:
X: DataFrame,包含要计算的列 "column_1"。
target: int,目标值。

返回值:
int,等于目标值 target 的元素个数。
"""
# 使用循环计数
def count_loop(X, target: int) -> int:
    return sum(x == target for x in X["column_1"])

# 使用矢量化操作计数
def count_vectorized(X, target: int) -> int:
    return (X["column_1"] == target).sum()
关键字:
声明:我公司网站部分信息和资讯来自于网络,若涉及版权相关问题请致电(63937922)或在线提交留言告知,我们会第一时间屏蔽删除。
有价值
0% (0)
无价值
0% (10)

分享转发:

发表评论请先登录后发表评论。愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。