输入提示 2D numpy 数组

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

作为这个问题的后续我有一个函数将返回固定列但可变行的二维

numpy.array

import numpy.typing as npt

def example() -> npt.ArrayLike:
    data = np.array([[1,2,3],
                     [4,5,6],
                     ...,
                     [x,y,z]])

我如何具体提示返回的数组将是

3
列乘
N
(变量)行?

python numpy python-typing
1个回答
24
投票

2022年10月24日更新

目前这仍然不可能,但根据对 Numpy GitHub 问题的评论,一旦 mypy 支持PEP 646,这将是可能的。请参阅mypy 的 GitHub 存储库上的相关问题。该问题在撰写本文时尚未解决。

Python 3.11 今天发布,支持 PEP646。一旦 mypy 支持 PEP646,用户将能够输入提示 Numpy 数组的形状。


旧答案

此时(2022 年 9 月 13 日)似乎无法键入提示

numpy.ndarray
的形状(或数据类型)。然而,最近有一些针对 numpy 的拉取请求正在努力实现这一目标。

PEP 646 与此相关,并已被 Python 3.11 接受。根据 numpy/numpy 问题 #16544,在 mypy 等类型检查器添加对 PEP 646 的支持后,将能够对数组的形状和数据类型进行类型提示。


这可以通过

nptyping
包来完成,但这不是 numpy 的一部分。

from typing import Any from nptyping import NDArray # Nx3 array with Any data type. NDArray[(Any, 3), Any]
    
© www.soinside.com 2019 - 2024. All rights reserved.