类型提示 numpy 数组和批处理

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

我正在尝试为科学 python 项目创建一些数组类型。到目前为止,我已经为 1D、2D 和 ND numpy 数组创建了泛型类型:

from typing import Any, Generic, Protocol, Tuple, TypeVar

import numpy as np
from numpy.typing import _DType, _GenericAlias

Vector = _GenericAlias(np.ndarray, (Tuple[int], _DType))
Matrix = _GenericAlias(np.ndarray, (Tuple[int, int], _DType))
Tensor = _GenericAlias(np.ndarray, (Tuple[int, ...], _DType))

第一个问题是 mypy 说 VectorMatrixTensor 不是有效类型(例如当我尝试 myvar: Vector[int] = np.array([1, 2, 3]) 时)

第二个问题是我想创建一个我想像这样使用的泛型 BatchBatch[Vector[(10,), complex]] 应该像 Matrix[complex]Batch[Matrix[float]] 应该像 Tensor[float]Batch[Tensor[int] 应该像 Tensor[int]。我不确定“应该像”是什么意思我想我的意思是 mypy 不应该抱怨。

我怎么知道这个?

arrays numpy mypy python-typing type-annotation
© www.soinside.com 2019 - 2024. All rights reserved.