我有一个函数is_prime(n)如果n是素数则返回True ,否则返回False。在 NumPy 中,我正在循环,检查数组是否包含素数,并且数组的开头在每次迭代中都是相同的,所以我想记住 is_prime(n)函数以避免大量不必要的计算。
因为我有一个数组,所以我想对is_prime(n)进行矢量化,以便我可以将它逐个元素地应用于数组,NumPy 样式。我使用 NumPy 教程中的一行代码(稍后显示)
我还使用了我在网上找到的一个记忆模板:
def memoize(function):
cache = {}
def decorated_function(*args):
if args in cache:
return cache[args]
else:
val = function(*args)
cache[args] = val
return val
return decorated_function
然后:
is_prime = memoize(is_prime)
但是,如果我现在矢量化记忆的is_prime函数,V_prime 现在是否正确记忆?:
V_prime = np.vectorize(is_prime)
谢谢