如何在可选类型中使用 numpy
Posted
技术标签:
【中文标题】如何在可选类型中使用 numpy【英文标题】:How to use numpy in optional typing 【发布时间】:2016-05-21 13:51:06 【问题描述】:假设我想创建一个函数,它以 lambda 函数(可调用)作为参数,其中 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】:令人困惑的是,np.array
是一个用于创建 numpy 数组的 函数。它不是所创建数组的实际 type
。
类型是np.ndarray
。
因此,将np.array
替换为np.ndarray
。这应该可以解决问题。
【讨论】:
谢谢。我最近决定使用内置的type(...)
函数来打印我怀疑的变量的确切类型。有时在使用 matplotlib 等库时需要做一些侦探工作,但至少它帮助我找到了到目前为止的类型,所以我可以将它们放在我的函数声明中。以上是关于如何在可选类型中使用 numpy的主要内容,如果未能解决你的问题,请参考以下文章
无法在可选绑定中使用可选 int "possibleNumber"