首页 > 解决方案 > Orange3 Python 小部件我无法汇总标记为元的列的值

问题描述

尝试从 Orange3 中的 Python 小部件中汇总标记为元的变量/列的值时不起作用。如何对标记为元的连续变量的列进行操作?

import Orange
from Orange.data import ContinuousVariable, DiscreteVariable, Domain, Table
import numpy as np

data_copy = in_data.copy()
total = np.sum(data_copy[:,('meta_variable')])

print(data_copy[:,('meta_variable')])
>>>
[[] {0.002199999999999980},
 [] {-0.000199999999999978},
 [] {-0.001199999999999870},
 [] {-0.005300000000000080},
 [] {-0.003500000000000060}]

print(total)
>>>
0.00000

标签: variablestypesorange

解决方案


Metas 存储为一个 numpy 数组.metas。的一个Orange.data.Table

首先,我将构建一个带有数字元数据的示例数据集:

import Orange
data = Orange.data.Table("iris")
domain_w_metas = Orange.data.Domain(
    data.domain.attributes[1:],
    data.domain.class_vars,
    [data.domain.attributes[0]])
data = data.transform(domain_w_metas)
print(data.domain)

我们看到现在我们有一个元数据,“萼片长度”:

[sepal width, petal length, petal width | iris] {sepal length}

在我们的例子中,我们正在寻找第一个元数据,所以我们可以简单地做:

first_column = data.metas[:, 0]
print(numpy.sum(first_column))

推荐阅读