check_is_mtype#

check_is_mtype(obj, mtype: str | list[str], scitype: str | None = None, return_metadata=False, var_name='obj', msg_return_dict='dict')[源代码][源代码]#

检查对象是否符合mtype规范,返回元数据。

参数:
obj - 要检查的对象
mtype: str 或 str 列表, 检查 obj 的 mtype

有效的 mtype 字符串在 datatypes.MTYPE_REGISTER 中(第一列)

scitype: str, 可选, 要检查的对象的scitype; 默认 = 从mtype推断

如果从 mtype 推断,mtype 的列表元素不需要具有相同的 scitype。有效的 mtype 字符串在 datatypes.SCITYPE_REGISTER 中(第一列)

return_metadata - bool, str, 或 str 列表, 可选, 默认=False

如果为 False,仅返回“有效”的返回值;如果为 True,返回所有三个返回对象;如果为字符串或字符串列表,元数据返回字典仅限于 return_metadata 中的键。

var_name: str, 可选, 默认值=”obj”

错误信息中的输入名称

msg_return_dict: str, 可选值为 ``”list”`` 或 ``”dict”``, 可选, 默认=”dict”

返回的消息,如果返回,是字符串、字典还是列表

  • 如果 msg_return_dict="list",返回的 msgstr 如果 mtypestr,返回的 msgstrlist 如果 mtypelist

  • 如果 msg_return_dict="dict",返回的 msgstr 如果 mtypestr,返回的 msgdictstr 如果 mtypelist。如果 dict,在 mtype 中以 str 为键,并以 mtype 的错误消息为值。

返回:
valid: bool - obj 是否是 mtype/scitype 的有效对象
msg: str 或 str 的 list/dict - 如果对象无效,则为错误消息,否则为 None

list 或 dict 类型通过 msg_return_dict 控制,如果为 str: 测试 mtype 的错误消息;如果为 list: 包含 len(mtype) 的列表,每个 mtype 对应一条消息;如果为 list,顺序与 mtype 相同;如果为 dict: 以 mtype 为键,错误消息为值的字典;仅当 return_metadata 为 True 或 str, list of str 时返回。

metadata: dict - 如果 obj 有效,则为关于 obj 的元数据,否则为 None

仅当 return_metadata 为 True 或 str, list of str 时返回

填充的键取决于(假设的,否则识别的)obj的科学类型。始终返回:

“mtype”: str, obj 的 mtype(假设或推断) “scitype”: str, obj 的 scitype(假设或推断)

对于 scitype “Series”:

“is_univariate”: bool, 如果序列只有一个变量则为True “is_equally_spaced”: bool, 如果序列索引等间隔则为True “is_empty”: bool, 如果序列没有变量或没有实例则为True “has_nans”: bool, 如果序列包含NaN值则为True

对于 scitype “Panel”:

“is_univariate”: bool, 如果面板中的所有序列都只有一个变量,则为True “is_equally_spaced”: bool, 如果所有序列的索引间隔相等,则为True “is_equal_length”: bool, 如果面板中的所有序列长度相等,则为True “is_empty”: bool, 如果面板中的一个或多个序列是空的,则为True “is_one_series”: bool, 如果面板中只有一个序列,则为True “has_nans”: bool, 如果面板包含NaN值,则为True “n_instances”: int, 面板中的实例数量

对于 scitype “Table”:

“is_univariate”: bool, 如果表只有一个变量则为True “is_empty”: bool, 如果表没有变量或没有实例则为True “has_nans”: bool, 如果面板包含NaN值则为True “n_instances”: int, 表中的实例/行数

对于 scitype “Alignment”:

目前没有

引发:
如果没有为 mtype/scitype 组合定义检查,则抛出 TypeError
如果 mtype 输入参数的类型不符合预期,则会引发 TypeError