Numpy类型提示使用nptyping和PyCharm中的数组

9

我尝试使用numpy和nptyping的Array来进行类型提示。

我尝试了以下代码:

enemy_hand: Array[float, 48] = np.zeros(48)

我遇到了一个 TypeError 错误:

期望类型为 'Array[float, Any]',但实际得到了 'ndarray'

据我理解,根据这个链接:https://pypi.org/project/nptyping/,应该是这样的。


哪一行代码导致了错误?类型提示仅供用户参考。我也尝试复制了你的问题,但是isinstance给出了预期的输出。请更新你的问题,包括更多关于错误的信息以及你如何遇到它的描述。 - sshashank124
正如@sshashank124在我的已删除答案的评论中指出的那样,提问者正在尝试进行变量注释 - Daniel F
1个回答

8

nptyping目前对于静态分析来说毫无用处。引用库开发者在其问题跟踪器上的一篇帖子:

mypy还不支持nptyping

我不会对“还不支持”抱有太大的期望。NumPy的dtype和shape处理非常难以适应typing/mypy静态类型模型,而nptyping自身的设计决策与NumPy本身不匹配。例如,它似乎从未考虑过不是2D的数组,因此Array[str, 3]表示具有3行和未指定列的2D数组,而不是3个元素的1D数组。所有实现都是基于行和列的。

据我所知,nptyping唯一真正的功能就是isinstance检查,甚至那也有缺陷。


@NameVergessen:不行。就像我说的,NumPy的dtype和shape处理与“typing”/“mypy”类型系统非常不匹配。 - user2357112
据我所知,这个“yet”还没有到来。 - NameVergessen
FYI,仍未完成。 - Gulzar
对于 nptyping 2.x,mypy 可以检测数组与非数组,但无法检测形状/维度标签不匹配。 - Ziyuan

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