numpy 为什么我不能导入np.typing.NDArray,但现在可以了?

f45qwnt8  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(197)

我在Python导入中遇到了一个奇怪的情况。有人知道这是如何工作的吗?
我有:

import numpy as np
values: Union[Sequence[int], np.typing.NDArray]
probs: Union[Sequence[float], np.typing.NDArray]

现在失败了,因为np.typing不能以这种方式导入。我猜是因为init file中没有定义它吧?
好的,现在我将其替换为:

import numpy as np
import numpy.typing as npt
values: Union[Sequence[int], npt.NDArray]
probs: Union[Sequence[float], np.typing.NDArray]

现在它可以工作了--但是为什么它没有在“probs”行上中断呢?在那里,我仍然有以前给我一个错误的同一个语句。是什么改变了它的工作呢?

  • 上下文:Numpy 1.21.3,Python 3.7*
  • 注意:我知道我可以简单地替换这两个语句,但我对为什么这样做不会给予错误感到惊讶,并想知道这是如何工作的。*
dgjrabp2

dgjrabp21#

运行导入后

import numpy.typing as npt

解释器“找出”NP的附加部分。
您可以通过以下方式进行检查:

import numpy as np
len(dir(np)) # 602 (in my case)

import numpy.typing as npt
len(dir(np)) # 604

相关问题