Orange3 Python Widget я не могу суммировать значения столбца, помеченного как мета - PullRequest
1 голос
/ 31 марта 2019

При попытке суммировать значения переменной / столбца, помеченного как мета из виджета Python в Orange3, не работает.Как я могу выполнить операции со столбцами с непрерывной переменной, помеченной как мета?.

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

1 Ответ

2 голосов
/ 01 апреля 2019

Метас хранятся в виде массива .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))
...