Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提高Python复制大型数据集的效率_Python_Performance_Random Forest - Fatal编程技术网

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

提高Python复制大型数据集的效率,python,performance,random-forest,Python,Performance,Random Forest,我在用Python实现随机林时遇到了一些问题。简单地说,我很清楚Python并不是用于高效的数字处理的。这一选择更多地是基于希望对Python有更深的理解和更多的经验。我想找到一个解决办法,使它“合理” 话虽如此,我很好奇这里是否有人能对我的实现提出一些性能改进建议。通过探查器运行它,很明显大部分时间都花在执行list“append”命令和我的数据集拆分操作上。本质上,我有一个作为矩阵实现的大型数据集(更确切地说,是列表列表)。我正在使用该数据集构建一个决策树,因此我将在信息增益最高的列上进行拆

我在用Python实现随机林时遇到了一些问题。简单地说,我很清楚Python并不是用于高效的数字处理的。这一选择更多地是基于希望对Python有更深的理解和更多的经验。我想找到一个解决办法,使它“合理”

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

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


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

如果不查看您的代码,就很难给出任何具体的建议,因为优化是一个依赖于代码的过程,会因情况而异。然而,还有一些一般性的事情:

  • 检查您的算法,尝试减少循环的数量。看来 你有很多循环,其中一些是深深嵌入到 其他循环(我猜)
  • 如果可能,请使用更高性能的实用程序模块,如itertools 而不是你自己写的幼稚的代码
  • 如果您感兴趣,请尝试PyPy(),它是一个 面向性能的Python实现

  • 在没有看到代码的情况下,很难给出任何具体的建议,因为优化是一个依赖于代码的过程,会因情况而异。然而,还有一些一般性的事情:

  • 检查您的算法,尝试减少循环的数量。看来 你有很多循环,其中一些是深深嵌入到 其他循环(我猜)
  • 如果可能,请使用更高性能的实用程序模块,如itertools 而不是你自己写的幼稚的代码
  • 如果您感兴趣,请尝试PyPy(),它是一个 面向性能的Python实现

  • Python中的高效数字处理可以使用Numpy和Scipy完成。Python中的高效数字处理可以使用Numpy和Scipy完成。