假设我有一个功能:
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
...
答案 0 :(得分: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)