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

如何为返回指定尺寸Numpy数组的Python函数编写文档?

为返回固定形状NumPy数组的函数编写精准文档的方法

一、正确的类型标注方式

Python原生类型标注系统不直接支持指定NumPy数组的形状,但可以结合numpy.typing.NDArray和typing.Annotated补充形状信息,让VSCode这类编辑器识别更精准的类型提示:

from typing import Annotated
import numpy as np
from numpy.typing import NDArray

def poseToVector6(pose: Pose) -> Annotated[NDArray[np.float64], (6, 1)]:
    """将Pose转换为6×1的列向量"""
    # 函数实现
    return np.zeros((6, 1), dtype=np.float64)

如果不想引入额外的类型标注语法,也可以直接用NDArray并在文档字符串里明确形状:

import numpy as np
from numpy.typing import NDArray

def poseToVector6(pose: Pose) -> NDArray[np.float64]:
    """将Pose转换为6×1的列向量

    Returns:
        NDArray[np.float64]: 形状为(6, 1)的列向量,存储Pose的转换结果
    """
    # 函数实现
    return np.zeros((6, 1), dtype=np.float64)

二、用Docstring明确数组形状

详细的文档字符串是补充返回值信息的核心,推荐使用NumPy风格或Google风格的格式:

NumPy风格示例:

import numpy as np

def poseToVector6(pose: Pose) -> np.ndarray:
    """将Pose对象转换为6×1的列向量

    Parameters
    ----------
    pose : Pose
        输入的Pose对象

    Returns
    -------
    np.ndarray
        形状为(6, 1)的float64类型列向量,存储Pose的平移和旋转分量
    """
    # 函数实现

Google风格示例:

import numpy as np

def poseToVector6(pose: Pose) -> np.ndarray:
    """将Pose对象转换为6×1的列向量

    Args:
        pose: 输入的Pose对象

    Returns:
        np.ndarray: 形状为(6, 1)的列向量,类型为float64,包含平移(x,y,z)和旋转(r,p,y)分量
    """
    # 函数实现

三、常见误区说明

你之前尝试的-> np.ndarray((6,1))是错误写法:np.ndarray((6,1))是创建一个具体的数组实例,而非指定类型,因此类型检查器会将返回值识别为Any,这就是VSCode显示返回类型为Any的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:07:10