是否有人为特定的numpy.ndarray
类实现了类型提示?
现在,我正在使用typing.Any
,但如果能有更具体的东西就更好了。
例如,如果NumPy人员为他们的array_like对象类添加了一个type alias。更好的是,在dtype级别实现支持,这样就可以像ufunc一样支持其他对象。
发布于 2020-09-24 00:44:01
在我的公司,我们一直在使用:
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高兴(即你仍然会得到令人讨厌的警告线):
发布于 2016-02-28 07:28:49
查看DataShape。它使用数据类型以及一些语法来表示输入和输出数组应该有多大。
发布于 2020-09-17 01:40:53
nptyping为指定numpy类型提示增加了很大的灵活性。
https://stackoverflow.com/questions/35673895
复制相似问题