对于很多函数,可以使用本机Python或numpy来继续。
这是数学函数的情况,可以使用Python本机import math
,也可以使用numpy方法。对于数组来说也是这种情况,从numpy和pythons列表推导或元组中得到叙述。
我有两个与Python中的这些功能相关的问题以及numpy
一般情况下,如果方法在本机Python和numpy中可用,那么您更喜欢哪两种解决方案?在效率方面?是不同的,Python和numpy在他们的过程中会有什么不同?
更具体地说,关于数组和处理数组的基本函数,比如sort,concatenate ......,哪种解决方案更有效?什么才能提高效率?
这是一个非常开放和一般性的问题。我想这不会对我的代码产生太大影响,但我只是想知道。
答案 0 :(得分:4)
一般而言,避免在两者之间进行转换可能最重要(效率方面)。如果你主要在数据上使用非numpy函数,那么它们将使用标准的Python数据类型在内部运行,因此使用numpy数组会因为需要来回转换而效率低下。
同样,如果您使用大量numpy函数来操作数据,那么将它们全部转换回基本的Python类型也会效率低下。
就选择功能而言,使用设计为在您的数据已经存在的形式上运行的任何功能 - 例如如果你已经有一个numpy数组,请使用numpy函数;同样,如果您有基本的Python数据类型,请在其上使用Python函数。 numpy的函数将针对使用numpy的数据类型进行优化。
答案 1 :(得分:1)
在使用NumPy数组和数字列表之间做出选择时,前者通常更快。
我不太明白第二个问题,所以不会试图解决它。
答案 2 :(得分:1)
您可以对代码段进行基准测试并确定结果。使用python模块timeit:http://docs.python.org/2/library/timeit.html