numpy 为什么我不能将NDArray类型的变量传递给np.save?

2nc8po8w  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(92)

我在VSCode中为Pylance打开了严格的类型检查,它抱怨下面的代码片段:

import numpy as np
from numpy.typing import NDArray

this_seems_to_be_causing_the_issue: NDArray[np.float32] = np.array([1,2,3], dtype=np.float32)
np.save("i_think_anything_can_go_here", this_seems_to_be_causing_the_issue)

出现以下警告/错误:

Type of "save" is partially unknown
  Type of "save" is "(file: str | PathLike[str] | _SupportsWrite[bytes], arr: _SupportsArray[dtype[Unknown]] | _NestedSequence[_SupportsArray[dtype[Unknown]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], allow_pickle: bool = ..., fix_imports: bool = ...) -> None"

是我做错了什么,还是这是Pylance / numpy /其他东西中的错误/限制?有办法解决吗?
起初,我在NDArray[Any]中遇到了这个问题,并认为Any可能是问题所在,但更具体的类型会导致相同的警告。删除类型提示也没有帮助。不知道如何从这里调试。
我有Python版本3.10.12,numpy版本1.23.5和Pylance扩展版本v2023.9.20。

brvekthn

brvekthn1#

这是一个numpy问题,因为我通过升级numpy修复了它。更具体地说,从版本1.24.2开始没有警告,这个特定的提交是修复:https://github.com/numpy/numpy/pull/23150

相关问题