numpy 与原生 Python - 最有效的方法

5 python performance numpy

对于许多函数,可以使用本机 Python 或 numpy 来继续。

数学函数就是这种情况,可用于 Python 原生import math,也可用于 numpy 方法。对于数组也是如此,例如 numpy 和 python 列表推导式中的 narray 或元组。

我有两个与 Python 和 numpy 中的这些功能相关的问题

  1. 一般来说,如果方法在本机 Python 和 numpy 中可用,您更喜欢这两种解决方案中的哪一个?在效率方面?Python 和 numpy 在处理过程中有何不同?

  2. 更具体地说,关于数组以及处理数组的基本函数,例如排序、连接......,哪种解决方案更有效?是什么造就了最高效解决方案的效率?

这是一个非常开放且普遍的问题。我想这不会对我的代码产生很大影响,但我只是想知道。

Amb*_*ber 5

一般来说,避免两者之间的转换可能是最重要的(从效率角度来看)。如果您主要在数据上使用非 numpy 函数,那么它们将使用标准 Python 数据类型在内部进行操作,因此由于需要来回转换,使用 numpy 数组会效率低下。

同样,如果您使用大量 numpy 函数来操作数据,那么将其全部转换回基本 Python 类型也是低效的。


就选择函数而言,请使用设计用于对数据已有的形式进行操作的函数 - 例如,如果您已经有一个 numpy 数组,请在其上使用 numpy 函数;同样,如果您有基本的 Python 数据类型,请使用其上的 Python 函数。numpy 的函数将针对处理 numpy 的数据类型进行优化。