Translation not up to date
Biblioteka szeregów czasowych udostępnia różne funkcje dla szeregów czasowych jednej zmiennej, wielu zmiennych, szeregów czasowych z wieloma kluczowymi szeregami oraz typów liczbowych i jakościowych.
Funkcjonalność udostępniana przez bibliotekę może być w dużym stopniu skategoryzowana w:
- Operacje we/wy szeregów czasowych, służące do tworzenia i zapisywania danych szeregów czasowych
- Funkcje szeregów czasowych, transformacje, stolarki okienkowe lub segmentacji, a także reduktory
- Szeregi czasowe SQL i rozszerzenia SQL do Spark, aby umożliwić wykonywanie skalowalnych funkcji szeregów czasowych
Niektóre z kluczowych funkcji są przedstawione w poniższych sekcjach za pomocą przykładów.
Operacje we/wy serii
Podstawowe funkcje wejścia i wyjścia (we/wy) dla szeregu czasowego są dostępne w postaci pandas DataFrame lub Python . Poniższy przykładowy kod przedstawia konstruowanie szeregów czasowych z DataFrame:
>>> import numpy as np
>>> import pandas as pd
>>> data = np.array([['', 'key', 'timestamp', "value"],['', "a", 1, 27], ['', "b", 3, 4], ['', "a", 5, 17], ['', "a", 3, 7], ['', "b", 2, 45]])
>>> df = pd.DataFrame(data=data[1:, 1:], index=data[1:, 0], columns=data[0, 1:]).astype(dtype={'key': 'object', 'timestamp': 'int64', 'value': 'float64'})
>>> df
key timestamp value
a 1 27.0
b 3 4.0
a 5 17.0
a 3 7.0
b 2 45.0
#Create a timeseries from a dataframe, providing a timestamp and a value column
>>> ts = tspy.time_series(df, ts_column="timestamp", value_column="value")
>>> ts
TimeStamp: 1 Value: 27.0
TimeStamp: 2 Value: 45.0
TimeStamp: 3 Value: 4.0
TimeStamp: 3 Value: 7.0
TimeStamp: 5 Value: 17.0
Aby powrócić z powrotem z szeregu czasowego do stanu pandas DataFrame, należy użyć funkcji to_df
:
>>> import tspy
>>> ts_orig = tspy.time_series([1.0, 2.0, 3.0])
>>> ts_orig
TimeStamp: 0 Value: 1
TimeStamp: 1 Value: 2
TimeStamp: 2 Value: 3
>>> df = ts_orig.to_df()
>>> df
timestamp value
0 0 1
1 1 2
2 2 3
Model danych
Dane szeregów czasowych nie mają żadnych standardów dla modelu i typów danych, w przeciwieństwie do niektórych typów danych, takich jak przestrzenne, które są zarządzane przez standard, taki jak Open Geospatial Consortium (OGC). Wyzwaniem z danymi szeregów czasowych są różnorodne funkcje, które muszą być obsługiwane, podobnie jak w przypadku Spark Resilient Distributed Datasets (RDD).
Model danych pozwala na wykonywanie różnorodnych operacji, obejmujących różne formy segmentacji lub okienek szeregów czasowych, transformacje lub konwersje jednego szeregu czasowego do innego, reduktory, które oblicza wartość statyczną z szeregu czasowego, łączenia, które łączą się z wieloma szeregami czasowymi, a także kolektory szeregów czasowych z różnych stref czasowych. Biblioteka szeregów czasowych umożliwia tworzenie plug-and-play nowych funkcji przy jednoczesnym zachowaniu niezmienności podstawowej struktury danych. Biblioteka obsługuje również terminale numeryczne i kategorialne.
Ze strefami czasowymi i różnymi czytelnymi formatami czasu kluczowym aspektem modelu danych jest obsługa Systemu Obsługi Czasu (Time Reference System-TRS). Każda seria czasowa jest powiązana z TRS (system domyślny), który może być ponownie odwzorowany na dowolny konkretny wybór użytkownika w dowolnym momencie, umożliwiając łatwe przekształcenie konkretnego szeregu czasowego lub segmentu serii czasowych. Patrz Korzystanie z systemu odniesienia czasu.
Ponadto, z potrzebą obsługi szeregów czasowych o dużej skali, biblioteka oferuje leniwą konstrukcję wartościową, dostarczając mechanizm służący do identyfikowania maksymalnej, wąskiej zależności czasowej. Konstrukcja ta jest bardzo podobna do tego z grafu obliczeniowego Spark, który ładuje również dane do pamięci w miarę potrzeb i realizuje obliczenia tylko wtedy, gdy jest to potrzebne.
Typy danych szeregów czasowych
Istnieje możliwość użycia wielu typów danych jako elementu szeregu czasowego, obejmującego wiele struktur danych liczbowych, jakościowych, macierzy i danych słownikowych.
W szeregach czasowych obsługiwane są następujące typy danych:
Typ danych | Opis |
---|---|
numeryczna | Szeregi czasowe z obserwacjami jednozmiennymi typu liczbowego, w tym podwójnymi i liczbami całkowitymi. Na przykład:[(1, 7.2), (3, 4.5), (5, 4.5), (5, 4.6), (5, 7.1), (7, 3.9), (9, 1.1)] |
tablica numeryczna | Szeregi czasowe z wielowymiarnymi obserwacjami typu liczbowego, w tym podwójnymi tablicami i liczbami całkowitymi. Na przykład:[(1, [7.2, 8.74]), (3, [4.5, 9.44]), (5, [4.5, 10.12]), (5, [4.6, 12.91]), (5, [7.1, 9.90]), (7, [3.9, 3.76])] |
łańcuch | Szeregi czasowe z obserwacjami niezmiennych typu string, na przykład: [(1, "a"), (3, "b"), (5, "c"), (5, "d"), (5, "e"), (7, "f"), (9, "g")] |
Tablica łańcuchów | Szeregi czasowe z wielowymiarnymi obserwacjami typu tablicy typu string, na przykład: [(1, ["a", "xq"]), (3, ["b", "zr"]), (5, ["c", "ms"]), (5, ["d", "rt"]), (5, ["e", "wu"]), (7, ["f", "vv"]), (9, ["g", "zw"])] |
segment | Szeregi czasowe segmentów. Wyjściem funkcji segmentBy może być dowolny typ, w tym tablica numeryczna, łańcuchowa, tablica numeryczna i tablica łańcuchów. Na przykład: [(1,[(1, 7.2), (3, 4.5)]), (5,[(5, 4.5), (5, 4.6), (5, 7.1)]), (7,[(7, 3.9), (9, 1.1)])] |
słownik | Szeregi czasowe słowników. Słownik może mieć dowolne typy wewnątrz słownika |
Funkcje szeregów czasowych
Za pomocą różnych funkcji w udostępnionym pakiecie szeregów czasowych można analizować dane szeregów czasowych w celu wyodrębnienia znaczących informacji, za pomocą których można tworzyć modele, które mogą być używane do przewidywania nowych wartości na podstawie wcześniej zaobserwowanych wartości. Patrz Funkcje szeregów czasowych.
Więcej inform.
Aby użyć pakietu tspy
Python SDK, należy zapoznać się z dokumentacją pakietu tspy
Python SDK.
Temat nadrzędny: Analiza szeregów czasowych