2

假设我有一个功能:

 def mean(data):
     return sum(data)/len(data)

现在,如果在系统上你有 numpy 最好将它定义为:

def man(data):
     return np.mean(data)

如果您有高级库作为numexpr最好这样做:

def mean(data):
     return ne.evaluate("sum(data)") / len(data)

现在...我想使用以前的一个,这取决于一个库是否可用。在 python 中做的更好的方法是什么?例如,在 c/c++ 中,我会使用类似的宏

#ifdef HAS_NUMPY
...
#elseif HAS_NUMEXPRE
...
4

1 回答 1

4
try:
   import numpy as np
   HAS_NUMPY = True
except ImportError:
   HAS_NUMPY = False

try:
   import numexpr as ne
   HAS_NUMEXPR = True
except ImportError:
   HAS_NUMEXPR = False


if HAS_NUMPY:
    mean = np.mean
elif HAS_NUMEXPR:
    def mean(data):
        return ne.evaluate("sum(data)") / len(data)
else:
    def mean(data):
        return sum(data)/len(data)
于 2013-02-28T23:27:02.643 回答