【问题标题】:Increasing efficiency of Python copying large datasets提高 Python 复制大型数据集的效率
【发布时间】:2012-04-01 09:57:35
【问题描述】:

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

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

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

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

【问题讨论】:

  • 可以使用 Numpy 和 Scipy 在 Python 中进行高效的数字运算。

标签: python performance random-forest


【解决方案1】:

没有看到您的代码,真的很难给出任何具体的建议,因为优化是依赖于代码的过程,会因情况而异。不过还是有一些通用的东西:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多