Skip to content

temporian.duration #

Duration module-attribute #

Duration = Union[float, int]

A duration in seconds, stored as a float64.

In Temporian, timestamps and durations are float64 values, and it is up to the user to choose the semantic of this value.

However, some functions are datetime-related (such as the functions defined in this module, calendar operators, plotting functions, and more) and assume that durations are expressed in seconds (see Time units), so it is recommended to use seconds as timestamps where possible.

shortest module-attribute #

shortest = np.nextafter(0, 1)

Shortest interval between events that can be represented using float64.

This number can be used as the shortest window length to unify events with the same timestamp, ensuring that two different timestamps will never be aggregated.

days #

days(value: Union[int, float]) -> Duration

Converts input value from number of days to a Duration in seconds.

Example
>>> a = tp.event_set(
...    # Dates are converted to unix timestamps
...    timestamps=["2020-01-01", "2020-01-02", "2020-01-31"],
...    features={"f1": [1, 5, -5]}
... )

>>> a.moving_sum(window_length=tp.duration.days(2))
indexes: ...
        timestamps: ['2020-01-01T00:00:00' '2020-01-02T00:00:00'
                     '2020-01-31T00:00:00']
        'f1': [ 1 6 -5]
...

Parameters:

Name Type Description Default
value Union[int, float]

number of days.

required

Returns:

Type Description
Duration

Equivalent number of seconds.

hours #

hours(value: Union[int, float]) -> Duration

Converts input value from hours to a Duration in seconds.

Example
>>> timestamps = [tp.duration.hours(i) for i in [1, 2, 10]]
>>> timestamps
[3600.0, 7200.0, 36000.0]

>>> # Usage in a window operation
>>> a = tp.event_set(timestamps=timestamps, features={"f1": [1, 5, -5]})
>>> a.moving_sum(window_length=tp.duration.hours(2))
indexes: ...
        timestamps: [ 3600. 7200. 36000.]
        'f1': [ 1 6 -5]
...

Parameters:

Name Type Description Default
value Union[int, float]

Number of hours.

required

Returns:

Type Description
Duration

Equivalent number of seconds.

milliseconds #

milliseconds(value: Union[int, float]) -> Duration

Converts input value from milliseconds to a Duration in seconds.

Example
>>> duration = tp.duration.milliseconds(250)
>>> duration
0.25

>>> # Usage in a window operation
>>> a = tp.event_set(
...     timestamps=[0.5, 1.0, 1.2],
...     features={"f1": [1, 5, -5]}
... )
>>> a.moving_sum(window_length=duration)
indexes: ...
        timestamps: [0.5 1.  1.2]
        'f1': [1 5 0]
...

Parameters:

Name Type Description Default
value Union[int, float]

Number of milliseconds.

required

Returns:

Type Description
Duration

Equivalent number of seconds.

minutes #

minutes(value: Union[int, float]) -> Duration

Converts input value from minutes to a Duration in seconds.

Example
>>> timestamps = [tp.duration.minutes(i) for i in [5, 10, 30]]
>>> timestamps
[300.0, 600.0, 1800.0]

>>> # Usage in a window operation
>>> a = tp.event_set(timestamps=timestamps, features={"f1": [1, 5, -5]})
>>> a.moving_sum(window_length=tp.duration.minutes(6))
indexes: ...
        timestamps: [ 300. 600. 1800.]
        'f1': [ 1 6 -5]
...

Parameters:

Name Type Description Default
value Union[int, float]

Number of minutes.

required

Returns:

Type Description
Duration

Equivalent number of seconds.

seconds #

seconds(value: Union[int, float]) -> Duration

Converts input value from seconds to a Duration in seconds.

Since the Duration object is equivalent to a float value in seconds, this method does nothing else than casting the input to float. It may be used in order to make the code more explicit.

Explicit time units
>>> duration = tp.duration.seconds(3)
>>> duration
3.0

>>> # Usage in a window operation
>>> a = tp.event_set(
...     timestamps=[1, 2, 6],
...     features={"f1": [1, 5, -5]},
... )
>>> a.moving_sum(window_length=duration)
indexes: ...
        timestamps: [1. 2. 6.]
        'f1': [ 1 6 -5]
...

Parameters:

Name Type Description Default
value Union[int, float]

Number of seconds.

required

Returns:

Type Description
Duration

Same number of seconds.

to_string #

to_string(
    duration: Duration,
    cutoff: Union[str, TimeUnit] = "milliseconds",
) -> str

Returns the abbreviation for a duration.

Parameters:

Name Type Description Default
duration Duration

Duration in seconds.

required
cutoff Union[str, TimeUnit]

Cutoff for the abbreviation. For example, if cutoff is "day", the smallest unit will be days. Possible options are "week", "day", "hour" and "minute", "seconds" and "milliseconds". Default is "milliseconds".

'milliseconds'

Returns:

Type Description
str

Abbreviation for the duration.

weeks #

weeks(value: Union[int, float]) -> Duration

Converts input value from number of weeks to a Duration in seconds.

```python
>>> a = tp.event_set(
...    # Dates are converted to unix timestamps
...    timestamps=["2020-01-01", "2020-01-07", "2020-01-31"],
...    features={"f1": [1, 5, -5]}
... )

>>> a.moving_sum(window_length=tp.duration.weeks(2))
indexes: ...
        timestamps: ['2020-01-01T00:00:00' '2020-01-07T00:00:00'
                     '2020-01-31T00:00:00']
        'f1': [ 1 6 -5]
...

```

Parameters:

Name Type Description Default
value Union[int, float]

Number of weeks.

required

Returns:

Type Description
Duration

Equivalent number of seconds.