如何从 Orange 中的 RowInstance 读取元属性?

How to read meta properties from RowInstance in Orange?

我想显示来自 RowInstance 的信息。以下代码片段显示了大多数属性。

# type(line) is Orange.data.table.RowInstance
for i, cell in enumerate(line.values()):
    print(cell.value)

但是,"metadata values" 无法通过方法 values() 访问。仅返回特征值。

如何从 RowInstance 访问元数据?

我找到了一种读取元数据属性的方法

Domain property contains the attributes list and the metadata 列表。

>>> line.domain.attributes[0].name
"Feature1"
>>> line.domain.metas[0].name
"Metadata1"

该域还有一个实用函数,可以从其名称中获取 attributes/meta 索引。这导致发现元数据值位于负索引 (-1,-2,-3,...) 中。

>>> line.domain.index("Feature1")
0
>>> line.domain.index("Metadata1")
-1

有了索引,就可以得到 RowInstance(行变量)的值。

>>> line[0]
Value('Feature1', Hello)
>>> line[0].value
"Hello"
>>> line[-2].value
4.0

参考:https://docs.orange.biolab.si/3/data-mining-library/reference/data.domain.html