提高Python复制大型数据集的效率

时间:2012-03-15 20:12:21

标签: python performance random-forest

我在使用Python进行随机林的实现时遇到了一些麻烦。请记住,我很清楚Python不适用于高效的数字运算。选择的基础更多是希望深入了解Python并获得额外的经验。我想找到一个让它“合理”的解决方案。

话虽如此,我很好奇这里是否有人可以为我的实施提出一些性能改进建议。通过分析器运行它,显然大部分时间都花在执行列表“append”命令和我的数据集拆分操作上。基本上我有一个大型数据集实现为矩阵(而不是列表列表)。我正在使用该数据集来构建决策树,因此我将拆分具有最高信息增益的列。拆分包括创建两个新数据集,其中只有与某些critera匹配的行。通过初始化两个空的lista并向其附加适当的行来生成新数据集。

我事先不知道列表的大小,所以我不能预先分配它们,除非可以预先分配丰富的列表空间但最后更新列表大小(我还没有看到这个在任何地方引用。)

有没有更好的方法在python中处理这个任务?

1 个答案:

答案 0 :(得分:1)

在没有看到您的代码的情况下,很难给出任何具体的建议,因为优化是依赖于代码的过程,具体情况因具体而异。但是仍然有一些一般的东西:

  1. 检查您的算法,尝试减少循环次数。它似乎 你有很多循环,其中一些是深深嵌入的 其他循环(我猜)。
  2. 如果可能,请使用更高性能的实用程序模块,例如itertools 而不是自己写的天真代码。
  3. 如果您有兴趣,请尝试PyPy(http://pypy.org/),它是一个 面向性能的Python实现。