如何在可选类型中使用numpy

46

假设我想创建一个函数,该函数以Lambda函数(Callable)作为参数,其中Lambda函数将向量作为输入(定义为numpy数组或numpy矩阵)并返回新的向量。 我该如何声明具有numpy类型的Callable的类型签名?

我的初步尝试看起来像这样:

def some_func(calc_new_vector: Callable[[np.array], np.array], ...other-params...) -> SomeType:
    ...do stuff...
    ...return...

然而,运行解释器时会出现错误:

TypeError: Callable[[arg, ...], result]: each arg must be a type. Got <built-in function array>.
1个回答

73
混淆的是,np.array是一个函数,用于创建numpy数组。它不是创建数组的实际type
类型为np.ndarray
因此,请使用np.ndarray替换np.array。这应该可以解决问题。

3
谢谢。最近我决定使用内置的 type(...) 函数来打印我对变量类型存在疑惑的情况。有时,在使用 matplotlib 等库时需要一些侦探工作,但至少它已经帮助我找到了类型,以便将它们放入我的函数声明中。 - user483036

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接