本文整理汇总了Python中Orange.data.Table.from_domain方法的典型用法代码示例。如果您正苦于以下问题:Python Table.from_domain方法的具体用法?Python Table.from_domain怎么用?Python Table.from_domain使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Orange.data.Table
的用法示例。
在下文中一共展示了Table.from_domain方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: export_to_orange
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
def export_to_orange(df, *class_names,
from_duration=lambda delta: delta.total_seconds()/3600):
features, classes = [], []
for name, dtype in zip(df.columns, df.dtypes):
if np.issubdtype(dtype, np.timedelta64):
df[name] = list(map(from_duration, df[name]))
if np.issubdtype(dtype, np.number):
variable = ContinuousVariable(name)
else:
variable = DiscreteVariable(name, set(df[name]))
if name in class_names:
classes.append(variable)
else:
features.append(variable)
domain = Domain(features, classes)
table = Table.from_domain(domain, len(df))
for index in range(len(df)):
for name in df.columns:
value = df[name][index]
table[index][name] = (value if isinstance(value, str)
else value.item())
return table
示例2: test_empty_dataset
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
def test_empty_dataset(self):
# Prepare a table with 5 rows with only meta attributes
meta = np.array([0] * 5)
meta_var = ContinuousVariable(name='meta_var')
table = Table.from_domain(domain=Domain([], metas=[meta_var]), n_rows=5)
table.get_column_view(meta_var)[0][:] = meta
self.send_signal(self.widget.Inputs.data, table)
self.commit_and_wait()
self.assertTrue(self.widget.Error.empty_dataset.is_shown())
示例3: export_to_orange
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
def export_to_orange(df, *class_names,
from_duration=lambda delta: delta.total_seconds()/3600):
"""
Convert a `pandas` dataframe to an Orange `Table`.
Arguments:
df: A `pandas` dataframe.
class_names: The columns in the dataframe considered to be class
variables.
from_duration: A one-argument function that converts a
`numpy.timedelta64` object into a number. By default,
the number of seconds is used.
Returns:
An appropriately configured Orange `Table` object containing the data
in `df`.
"""
features, classes = [], []
for name, dtype in zip(df.columns, df.dtypes):
if np.issubdtype(dtype, np.timedelta64):
df[name] = list(map(from_duration, df[name]))
if np.issubdtype(dtype, np.number):
variable = ContinuousVariable(name)
else:
variable = DiscreteVariable(name, set(df[name]))
if name in class_names:
classes.append(variable)
else:
features.append(variable)
domain = Domain(features, classes)
table = Table.from_domain(domain, len(df))
for index in range(len(df)):
for name in df.columns:
value = df[name][index]
table[index][name] = (value if isinstance(value, str)
else value.item())
return table
示例4: load_data
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
def load_data(self):
self.closeContext()
data_list = []
fnok_list = []
empty_domain = Domain(attributes=[])
for rp in self.recent_paths:
fn = rp.abspath
reader = _get_reader(rp)
errors = []
with catch_warnings(record=True) as warnings:
try:
if self.sheet in reader.sheets:
reader.select_sheet(self.sheet)
if isinstance(reader, SpectralFileFormat):
xs, vals, additional = reader.read_spectra()
if additional is None:
additional = Table.from_domain(empty_domain, n_rows=len(vals))
data_list.append((xs, vals, additional))
else:
data_list.append(reader.read())
fnok_list.append(fn)
except Exception as ex:
errors.append("An error occurred:")
errors.append(str(ex))
#FIXME show error in the list of data
self.warning(warnings[-1].message.args[0] if warnings else '')
if data_list:
data = concatenate_data(data_list, fnok_list, self.label)
self.data = data
self.openContext(data.domain)
else:
self.data = None
self.domain_editor.set_domain(None)
self.apply_domain_edit() # sends data
示例5: data_table
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
#.........这里部分代码省略.........
namask = isnastr(orig_values, out=namask)
coltype_kwargs = {}
valuemap = None
values = orig_values
if type_flag in StringVariable.TYPE_HEADERS:
coltype = StringVariable
values = orig_values
elif type_flag in ContinuousVariable.TYPE_HEADERS:
coltype = ContinuousVariable
values = np.empty(data.shape[0], dtype=float)
try:
np.copyto(values, orig_values, casting="unsafe",
where=~namask)
values[namask] = np.nan
except ValueError:
for row, num in enumerate(orig_values):
if not isnastr(num):
try:
float(num)
except ValueError:
break
raise ValueError('Non-continuous value in (1-based) '
'line {}, column {}'.format(row + len(headers) + 1,
col + 1))
elif type_flag in TimeVariable.TYPE_HEADERS:
coltype = TimeVariable
values = np.where(namask, "", orig_values)
elif (type_flag in DiscreteVariable.TYPE_HEADERS or
_RE_DISCRETE_LIST.match(type_flag)):
coltype = DiscreteVariable
orig_values = values = np.where(namask, "", orig_values)
if _RE_DISCRETE_LIST.match(type_flag):
valuemap = Flags.split(type_flag)
coltype_kwargs.update(ordered=True)
else:
valuemap = sorted(set(orig_values) - {""})
else:
# No known type specified, use heuristics
valuemap, values, coltype = guess_data_type(orig_values, namask)
if flag.m or coltype is StringVariable:
append_to = (Mcols, metas)
elif flag.w:
append_to = (Wcols, None)
elif flag.c:
append_to = (Ycols, clses)
else:
append_to = (Xcols, attrs)
cols, domain_vars = append_to
if domain_vars is not None:
var_name = names and names[col]
if not var_name:
var_name = next(NAMEGEN)
values, var = sanitize_variable(
valuemap, values, orig_values, coltype, coltype_kwargs,
name=var_name)
else:
var = None
if domain_vars is not None:
var.attributes.update(flag.attributes)
domain_vars.append(var)
if isinstance(values, np.ndarray) and not values.flags.owndata:
values = values.copy() # might view `data` (string columns)
cols.append(values)
try:
# allow gc to reclaim memory used by string values
data[:, col] = None
except IndexError:
pass
domain = Domain(attrs, clses, metas)
if not data.size:
return Table.from_domain(domain, 0)
X = Y = M = W = None
if Xcols:
X = np.c_[tuple(Xcols)]
assert X.dtype == np.float_
else:
X = np.empty((data.shape[0], 0), dtype=np.float_)
if Ycols:
Y = np.c_[tuple(Ycols)]
assert Y.dtype == np.float_
if Mcols:
M = np.c_[tuple(Mcols)].astype(object)
if Wcols:
W = np.c_[tuple(Wcols)].astype(float)
table = Table.from_numpy(domain, X, Y, M, W)
return table
示例6: data_table
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
#.........这里部分代码省略.........
if name in uses:
uses[name] += 1
names[i] = "{}_{}".format(name, uses[name])
# Iterate through the columns
for col in range(rowlen):
flag = Flags(Flags.split(flags[col]))
if flag.i:
continue
type_flag = types and types[col].strip()
try:
orig_values = [np.nan if i in MISSING_VALUES else i
for i in (i.strip() for i in data[:, col])]
except IndexError:
# No data instances leads here
orig_values = []
# In this case, coltype could be anything. It's set as-is
# only to satisfy test_table.TableTestCase.test_append
coltype = DiscreteVariable
coltype_kwargs = {}
valuemap = []
values = orig_values
if type_flag in StringVariable.TYPE_HEADERS:
coltype = StringVariable
elif type_flag in ContinuousVariable.TYPE_HEADERS:
coltype = ContinuousVariable
try:
values = [float(i) for i in orig_values]
except ValueError:
for row, num in enumerate(orig_values):
try:
float(num)
except ValueError:
break
raise ValueError('Non-continuous value in (1-based) '
'line {}, column {}'.format(row + len(headers) + 1,
col + 1))
elif type_flag in TimeVariable.TYPE_HEADERS:
coltype = TimeVariable
elif (type_flag in DiscreteVariable.TYPE_HEADERS or
_RE_DISCRETE_LIST.match(type_flag)):
coltype = DiscreteVariable
if _RE_DISCRETE_LIST.match(type_flag):
valuemap = Flags.split(type_flag)
coltype_kwargs.update(ordered=True)
else:
valuemap = sorted(set(orig_values) - {np.nan})
else:
# No known type specified, use heuristics
valuemap, values, coltype = guess_data_type(orig_values)
if flag.m or coltype is StringVariable:
append_to = (Mcols, metas)
elif flag.w:
append_to = (Wcols, None)
elif flag.c:
append_to = (Ycols, clses)
else:
append_to = (Xcols, attrs)
cols, domain_vars = append_to
cols.append(col)
existing_var, new_var_name, column = None, None, None
if domain_vars is not None:
existing_var = names and names[col]
if not existing_var:
new_var_name = next(NAMEGEN)
values, var = sanitize_variable(
valuemap, values, orig_values, coltype, coltype_kwargs,
domain_vars, existing_var, new_var_name, data)
if domain_vars is not None:
var.attributes.update(flag.attributes)
domain_vars.append(var)
# Write back the changed data. This is needeed to pass the
# correct, converted values into Table.from_numpy below
try:
data[:, col] = values
except IndexError:
pass
domain = Domain(attrs, clses, metas)
if not data.size:
return Table.from_domain(domain, 0)
table = Table.from_numpy(domain,
data[:, Xcols].astype(float, order='C'),
data[:, Ycols].astype(float, order='C'),
data[:, Mcols].astype(object, order='C'),
data[:, Wcols].astype(float, order='C'))
return table
示例7: test_error_no_attributes
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
def test_error_no_attributes(self):
domain = Domain([])
table = Table.from_domain(domain, n_rows=10)
self.widget.auto_commit = True
self.send_signal(self.widget.Inputs.data, table)
self.assertTrue(self.widget.Error.no_attributes.is_shown())
示例8: data_table
# 需要导入模块: from Orange.data import Table [as 别名]
# 或者: from Orange.data.Table import from_domain [as 别名]
#.........这里部分代码省略.........
raise ValueError('Non-continuous value in (1-based) '
'line {}, column {}'.format(row + len(headers) + 1,
col + 1))
elif type_flag in TimeVariable.TYPE_HEADERS:
coltype = TimeVariable
elif (type_flag in DiscreteVariable.TYPE_HEADERS or
_RE_DISCRETE_LIST.match(type_flag)):
if _RE_DISCRETE_LIST.match(type_flag):
valuemap = Flags.split(type_flag)
coltype_kwargs.update(ordered=True)
else:
valuemap = sorted(set(orig_values) - {np.nan})
else:
# No known type specified, use heuristics
is_discrete = is_discrete_values(orig_values)
if is_discrete:
valuemap = sorted(is_discrete)
else:
try: values = [float(i) for i in orig_values]
except ValueError:
tvar = TimeVariable('_')
try: values = [tvar.parse(i) for i in orig_values]
except ValueError:
coltype = StringVariable
else:
coltype = TimeVariable
else:
coltype = ContinuousVariable
if valuemap:
# Map discrete data to ints
def valuemap_index(val):
try: return valuemap.index(val)
except ValueError: return np.nan
values = np.vectorize(valuemap_index, otypes=[float])(orig_values)
coltype = DiscreteVariable
coltype_kwargs.update(values=valuemap)
if coltype is StringVariable:
values = ['' if i is np.nan else i
for i in orig_values]
if flag.m or coltype is StringVariable:
append_to = (Mcols, metas)
elif flag.w:
append_to = (Wcols, None)
elif flag.c:
append_to = (Ycols, clses)
else:
append_to = (Xcols, attrs)
cols, domain_vars = append_to
cols.append(col)
if domain_vars is not None:
if names and names[col]:
# Use existing variable if available
var = coltype.make(names[col].strip(), **coltype_kwargs)
else:
# Never use existing for un-named variables
var = coltype(next(NAMEGEN), **coltype_kwargs)
var.attributes.update(flag.attributes)
domain_vars.append(var)
# Reorder discrete values to match existing variable
if var.is_discrete and not var.ordered:
new_order, old_order = var.values, coltype_kwargs.get('values', var.values)
if new_order != old_order:
offset = len(new_order)
column = values if data.ndim > 1 else data
column += offset
for i, val in enumerate(var.values):
try: oldval = old_order.index(val)
except ValueError: continue
bn.replace(column, offset + oldval, new_order.index(val))
if coltype is TimeVariable:
# Re-parse the values because only now after coltype.make call
# above, variable var is the correct one
values = [var.parse(i) for i in orig_values]
# Write back the changed data. This is needeed to pass the
# correct, converted values into Table.from_numpy below
try: data[:, col] = values
except IndexError: pass
domain = Domain(attrs, clses, metas)
if not data.size:
return Table.from_domain(domain, 0)
table = Table.from_numpy(domain,
data[:, Xcols].astype(float, order='C'),
data[:, Ycols].astype(float, order='C'),
data[:, Mcols].astype(object, order='C'),
data[:, Wcols].astype(float, order='C'))
return table