3

对于很多功能,可以使用本机 Python 或 numpy 来继续。

数学函数就是这种情况,它可用于 Python native import math,但也可用于 numpy 方法。当涉及到数组时也是如此,narray 来自 numpy 和 pythons 列表推导或元组。

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

  1. 一般来说,如果方法在本机 Python 和 numpy 中可用,您更喜欢这两种解决方案中的哪一种?在效率方面?它有什么不同吗? Python 和 numpy 在他们的过程中会有什么不同?

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

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

4

3 回答 3

4

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

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


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

于 2013-01-27T08:16:32.603 回答
1
  1. 当在使用 NumPy 数组和数字列表之间进行选择时,前者通常更快。

  2. 我不太明白第二个问题,所以不会尝试解决它。

于 2013-01-27T08:19:08.033 回答
1

您可以对代码片段进行基准测试并确定结果。使用python模块timeit:http ://docs.python.org/2/library/timeit.html

于 2013-01-27T08:27:38.850 回答