python - 如何在可选类型中使用 numpy

标签 python numpy python-3.5 typing

假设我想创建一个函数,该函数将 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>.

最佳答案

令人困惑的是,np.array是一个函数,可用于创建 numpy 数组。它不是所创建数组的实际类型

类型是np.ndarray .

因此,将 np.array 替换为 np.ndarray。这应该可以解决问题。

关于python - 如何在可选类型中使用 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328286/

相关文章:

python - 为什么 '1{0}' 正则表达式总是与空字符串匹配?

python - 无法在 Python 上安装 iPy

python - 在 Python 中评估极坐标网格上的插值函数的最快方法是什么?

python - 在多索引数据帧上应用重复序列

python - 有没有为 numpy.ma 做数组等效的库?

python - 使用 scipy fft 计算信号的自相关给出了与直接计算不同的答案

python - 当每个值都是字典时将数据框保存到 Excel

python - Pandas 数据框在满足双重标准时更改值

python - 在嵌套字典中搜索关键树

python - 软件包仅在 Python 2.7 中安装但在 3.5 中不安装