You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Numpy何时计划支持PEP 646定义的张量形状类型注解?

Numpy对PEP 646可变泛型形状注解的支持规划

目前Numpy官方尚未公布支持PEP 646定义的可变泛型形状注解的具体时间表。

现有进展与讨论

你提到的早期讨论确实涉及了张量形状和数据类型注解的规划,但该议题后续推进重点放在了numpy.typing模块的类型系统基础建设上,而非直接落地可变泛型的形状注解。社区仍在探讨具体实现方案,核心需要解决的是如何平衡类型注解的静态约束与Numpy数组动态特性之间的矛盾。

当前可用的替代方案

如果迫切需要这类形状注解能力,可以尝试以下途径:

  • 使用第三方库如beartype或pydantic,它们支持结合PEP 646对Numpy数组进行形状校验和注解;
  • 基于numpy.typing.NDArray结合自定义类型变量实现简化的形状注解(虽无法完全达到PEP 646示例的直观程度),示例代码如下:
    from typing import TypeVar, Generic
    import numpy as np
    from numpy.typing import NDArray
    
    Shape = TypeVar("Shape")
    Dtype = TypeVar("Dtype", bound=np.generic)
    
    class Array(Generic[Shape, Dtype]):
        def __getitem__(self, key) -> NDArray[Dtype]:
            ...
    
    def to_gray(videos: Array["Time, Batch, Height, Width, Channels", np.uint8]) -> Array["Time, Batch, Height, Width", np.uint8]:
        ...
    

后续关注方向

建议跟踪Numpy官方更新日志及核心仓库的相关PR,尤其是numpy.typing模块的迭代动态。一旦有可变泛型支持的规划或原型实现,通常会通过这些渠道公示。

内容的提问来源于stack exchange,提问作者Hylke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:24:16