kups.core.utils.subselect
¶
SubselectResult
¶
Paired scatter/gather indices for sub-selecting elements by category.
Attributes:
| Name | Type | Description |
|---|---|---|
scatter_idxs |
Array
|
Target indices for scattering gathered elements. |
gather_idxs |
Array
|
Source indices for gathering matching elements. |
Source code in src/kups/core/utils/subselect.py
offsets_from_counts(counts)
¶
Compute cumulative offsets from count arrays.
Converts an array of counts into cumulative offsets, useful for indexing into segmented data structures.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
counts
|
Array
|
Array of count values. |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Array of cumulative offsets starting from 0. |
Source code in src/kups/core/utils/subselect.py
subselect(target_ids, segment_ids, *, output_buffer_size, num_segments, is_sorted=False)
¶
Find indices for elements belonging to target segments.
This function efficiently finds all occurrences of elements from specified target segment IDs within a segmented array, returning gather and scatter indices for data manipulation operations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target_ids
|
Array
|
Array of segment IDs to search for. |
required |
segment_ids
|
Array
|
Array mapping each element to its segment ID. |
required |
output_buffer_size
|
Capacity[int]
|
Capacity object controlling output buffer size. |
required |
num_segments
|
int
|
Total number of segments in the data. |
required |
is_sorted
|
bool
|
Whether segment_ids is already sorted by segment. |
False
|
Returns:
| Type | Description |
|---|---|
SubselectResult
|
SubselectResult containing scatter_idxs and gather_idxs for indexing operations. |