【发布时间】:2018-08-07 15:33:14
【问题描述】:
我正在尝试定义一个@njit 函数,该函数在多个点需要计算最小值。按以下方式执行此操作:
min(arg1, arg2,...)
但是,当我去计算一个可迭代对象的最小值时,无论该可迭代对象是如何定义的,我似乎都遇到了问题。我用下面的一个小函数复制了这个:
itrbl = [5.0, 0.4, 4.5, 3.5, 6.4]
@njit
def funct(itrbl):
return min(itrbl)
funct(itrbl)
并得到以下错误:
TypingError: Invalid usage of Function(<built-in function min>) with parameters (reflected list(float64))
* parameterized
当我将itrbl 构造为一个数组时,它似乎也不喜欢......我需要如何构造itrbl 才能使这个简单的函数起作用?
【问题讨论】:
-
你应该尝试使用 numpy 数组。
-
如果我将 irtbl 转换为 numpy 数组 'itrbl=np.array([5.0, 0.4, 4.5, 3.5, 6.4])' 我得到错误 'Invalid usage of Function(
) 带参数 (array(float64, 1d, C)) * 参数化' -
它是否与 numpy 的 min 函数一起使用?
-
是的。确实如此。谢谢@pbreach。所以我只需要一个带有 np.min 的 numpy 数组来计算一个可迭代的最小值,我可以使用内置的 min 函数来计算几个 args 的最小值。
-
使用元组与
min一起工作,所以itrbl = (5.0, 0.4, 4.5, 3.5, 6.4)。