首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >numpy.ndarray的类型提示/注释(PEP484)

numpy.ndarray的类型提示/注释(PEP484)
EN

Stack Overflow用户
提问于 2016-02-28 02:44:56
回答 3查看 53.1K关注 0票数 115

是否有人为特定的numpy.ndarray类实现了类型提示?

现在,我正在使用typing.Any,但如果能有更具体的东西就更好了。

例如,如果NumPy人员为他们的array_like对象类添加了一个type alias。更好的是,在dtype级别实现支持,这样就可以像ufunc一样支持其他对象。

EN

回答 3

Stack Overflow用户

发布于 2020-09-24 00:44:01

在我的公司,我们一直在使用:

代码语言:javascript
复制
from typing import TypeVar, Generic, Tuple, Union, Optional
import numpy as np

Shape = TypeVar("Shape")
DType = TypeVar("DType")

class Array(np.ndarray, Generic[Shape, DType]):
    """  
    Use this to type-annotate numpy arrays, e.g. 
        image: Array['H,W,3', np.uint8]
        xy_points: Array['N,2', float]
        nd_mask: Array['...', bool]
    """
    pass

def compute_l2_norm(arr: Array['N,2', float]) -> Array['N', float]:
    return (arr**2).sum(axis=1)**.5

print(compute_l2_norm(arr = np.array([(1, 2), (3, 1.5), (0, 5.5)])))

我们实际上有一个MyPy检查器来检查形状是否正常工作(我们应该在某个时候发布)。唯一的问题是它不会让PyCharm高兴(即你仍然会得到令人讨厌的警告线):

票数 14
EN

Stack Overflow用户

发布于 2016-02-28 07:28:49

查看DataShape。它使用数据类型以及一些语法来表示输入和输出数组应该有多大。

票数 5
EN

Stack Overflow用户

发布于 2020-09-17 01:40:53

nptyping为指定numpy类型提示增加了很大的灵活性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35673895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档