temporian.EventSet.select_index_values #
select_index_values(
keys: Optional[IndexKeyList] = None,
*,
number: Optional[int] = None,
fraction: Optional[float] = None
) -> EventSetOrNode
Selects a subset of index values from an
EventSet
.
Exactly one of keys
, number
, or fraction
should be provided.
If number
or fraction
is specified, the index values are selected
randomly.
If fraction
is specified and fraction * len(index keys)
doesn't
result in an integer, the number of index values selected is rounded
down.
If used in compiled or graph mode, the specified keys are compiled as-is along with the operator, which means that they must be available when loading and running the graph on new data.
Example with keys
with a single index and a single key:
>>> a = tp.event_set(
... timestamps=[0, 1, 2, 3],
... features={
... "f": [10, 20, 30, 40],
... "x": ["A", "B", "A", "B"],
... },
... indexes=["x"],
... )
>>> b = a.select_index_values("A")
>>> b
indexes: [('x', str_)]
features: [('f', int64)]
events:
x=b'A' (2 events):
timestamps: [0. 2.]
'f': [10 30]
...
Example with keys
with multiple indexes and keys:
>>> a = tp.event_set(
... timestamps=[0, 1, 2, 3],
... features={
... "f": [10, 20, 30, 40],
... "x": [1, 1, 2, 2],
... "y": ["A", "B", "A", "B"],
... },
... indexes=["x", "y"],
... )
>>> b = a.select_index_values([(1, "A"), (2, "B")])
>>> b
indexes: [('x', int64), ('y', str_)]
features: [('f', int64)]
events:
x=1 y=b'A' (1 events):
timestamps: [0.]
'f': [10]
x=2 y=b'B' (1 events):
timestamps: [3.]
'f': [40]
...
Example with number
:
>>> import random
>>> random.seed(0)
>>> a = tp.event_set(
... timestamps=[0, 1, 2, 3],
... features={
... "f": [10, 20, 30, 40],
... "x": [1, 1, 2, 2],
... "y": ["A", "B", "A", "B"],
... },
... indexes=["x", "y"],
... )
>>> b = a.select_index_values(number=2)
>>> b
indexes: [('x', int64), ('y', str_)]
features: [('f', int64)]
events:
x=1 y=b'A' (1 events):
timestamps: [0.]
'f': [10]
x=2 y=b'A' (1 events):
timestamps: [2.]
'f': [30]
...
Example with fraction
:
>>> import random
>>> random.seed(0)
>>> a = tp.event_set(
... timestamps=[0, 1, 2, 3],
... features={
... "f": [10, 20, 30, 40],
... "x": [1, 1, 2, 2],
... "y": ["A", "B", "A", "B"],
... },
... indexes=["x", "y"],
... )
>>> b = a.select_index_values(fraction=0.75)
>>> b
indexes: [('x', int64), ('y', str_)]
features: [('f', int64)]
events:
x=1 y=b'A' (1 events):
timestamps: [0.]
'f': [10]
x=2 y=b'A' (1 events):
timestamps: [2.]
'f': [30]
...
Parameters:
Name | Type | Description | Default |
---|---|---|---|
keys |
Optional[IndexKeyList]
|
index key or list of index keys to select from the EventSet. |
None
|
number |
Optional[int]
|
number of index values to select. If |
None
|
fraction |
Optional[float]
|
fraction of index values to select, expressed as a float between 0 and 1. |
None
|
Returns:
Type | Description |
---|---|
EventSetOrNode
|
EventSet with a subset of the index values. |