EnsembleTable#

class sdm.EnsembleTable(groups: Sequence[T], locations: Sequence[tuple[int, int]])#

Store and group input TableTensor as an ensemble.

Each ensemble member is associated with one TableTensor. Shared tables are stored only once. Compatible tables are stacked along a leading dimension and form a group.

Parameters:
  • groups (Sequence[T]) – Sequence of TableTensor, optionally stacked along their leading dimension.

  • locations (Sequence[tuple[int, int]]) – (group, batch) location of each ensemble member.

classmethod from_table(table: TableTensor, *, num_members: int) → Self#

Create an ensemble, sharing one table across all members.

Parameters:
  • table (TableTensor) – Table used across members.

  • num_members (int) – Number of ensemble members.

Returns:

An EnsembleTable with one group.

Return type:

Self

classmethod from_tables(tables: Sequence[TableTensor], member_table_ids: Sequence[int]) → Self#

Create an ensemble table from tables and their member assignments.

Each referenced input table forms a separate group. member_table_ids contains one table index per member. For example, (0, 1, 0) assigns the first table to members 0 and 2 and the second table to member 1.

Parameters:
  • tables (Sequence[TableTensor]) – Tables available to the ensemble members.

  • member_table_ids (Sequence[int]) – Index into tables for each ensemble member.

Returns:

An ensemble table preserving member order.

Return type:

Self

gather_members(tables: Sequence[Self], member_ids: Sequence[int]) → Self#

Gather members from multiple ensemble tables.

tables[i][member_ids[i]] supplies output member i.

Parameters:
  • tables (Sequence[Self]) – Source ensemble table for each output member.

  • member_ids (Sequence[int]) – Logical source member position for each output member.

Returns:

An ensemble table preserving current group boundaries.

Return type:

Self

property num_groups: int#

Return the number of table groups.

num_members_in_group(group_id: int) → int#

Return the number of members of a group.

Parameters:

group_id (int) – Zero-based group index.

Return type:

int

expanded_group(group_id: int) → TableTensor#

Return the logical members assigned to one group.

Parameters:

group_id (int) – Zero-based group index.

Return type:

TableTensor

select_stypes(stypes: Stype | str | Iterable[Stype | str]) → Self#

Return an ensemble table containing only stypes columns.

Parameters:

stypes (Stype | str | Iterable[Stype | str]) – The semantic type or semantic types to select.

Returns:

An ensemble table preserving its logical member assignment.

Return type:

Self

classmethod concatenate_columns(tables: Sequence[Self]) → Self#

Concatenate ensemble tables column-wise by logical member.

Parameters:

tables (Sequence[Self]) – Ensemble tables with the same number of logical members.

Returns:

An ensemble table preserving logical member order.

Return type:

Self

replace_tables(tables: Sequence[TableTensor], member_table_ids: Sequence[int]) → Self#

Replace member tables.

Parameters:
  • tables (Sequence[TableTensor]) – Replacement tables available to the ensemble members.

  • member_table_ids (Sequence[int]) – Index into tables for each ensemble member.

Returns:

An ensemble table preserving existing group boundaries.

Return type:

Self

replace_groups(groups: Sequence[TableTensor]) → Self#

Return an ensemble table with its groups replaced.

Parameters:

groups (Sequence[TableTensor]) – One replacement group per current group.

Returns:

An ensemble table over groups with the current member assignment.

Return type:

Self