最近在写深度学习开源库时,遇到了读取语料并预处理的 API,于是趁此机会整理一下之前积累的关于高性能的内容。全文包括两个部分:第一部分主要聚焦在常用工具 Pandas 处理数据时不同操作方法的性能;第二部分主要介绍一些加速数值计算的工具;第三部分主要介绍一些能够辅助增加性能的工具。
如果懒得看过程,可以直接看结论:
- 数值计算任务:
numba或Cython加速;使用.values计算 - 遍历的非数值计算任务:
df.itertuples或df.apply方法 - 数据太大 Pandas 处理不了的可以使用 Arrow 和 Polars,再不行了使用 Spark
所有测试代码在:Note_DS/Performance.ipynb
