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

问题描述 投票:0回答:1

我在 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。

python numpy type-hinting pylance
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.