pub struct TimeSeries {
pub index: Vec<i64>,
pub values: Array1<f64>,
}Expand description
Time Series with normalized data
- index - Index based on timestamp in millisecond resolution
- values - Data points
Fields§
§index: Vec<i64>§values: Array1<f64>Implementations§
Source§impl TimeSeries
impl TimeSeries
Sourcepub fn empty() -> TimeSeries
pub fn empty() -> TimeSeries
Create empty Time Series
Sourcepub fn new(index: Vec<i64>, values: Vec<f64>) -> TimeSeries
pub fn new(index: Vec<i64>, values: Vec<f64>) -> TimeSeries
Create a new Time Series from from index and data
§Example
use timeseries::TimeSeries;
let index = vec![1, 2, 3, 4, 5];
let data = vec![1.0, 2.5, 3.2, 4.0, 3.0];
let ts = TimeSeries::new(index, data);
assert_eq!(ts.length(), 5);Sourcepub fn from_datapoints(datapoints: Vec<DataPoint>) -> TimeSeries
pub fn from_datapoints(datapoints: Vec<DataPoint>) -> TimeSeries
Create a new Time Series from from rows of tuples of timestamp and value
§Example
use timeseries::{TimeSeries, DataPoint};
let data = vec![DataPoint::new(1, 1.0),
DataPoint::new(2, 2.5),
DataPoint::new(3, 3.2),
DataPoint::new(4, 4.0),
DataPoint::new(5, 3.0)];
let ts = TimeSeries::from_datapoints(data);
assert_eq!(ts.length(), 5);Sourcepub fn length(&self) -> usize
pub fn length(&self) -> usize
Returns the number of elements in the series.
§Example
use timeseries::TimeSeries;
let index = vec![1, 2, 3, 4, 5];
let data = vec![1.0, 2.5, 3.2, 4.0, 3.0];
let ts = TimeSeries::new(index, data);
assert_eq!(ts.length(), 5);Sourcepub fn nth(&self, pos: usize) -> Option<DataPoint>
pub fn nth(&self, pos: usize) -> Option<DataPoint>
Return nth element of the series.
§Example
use timeseries::{TimeSeries, DataPoint};
let index = vec![1, 2, 3, 4, 5];
let data = vec![1.0, 2.5, 3.2, 4.0, 3.0];
let ts = TimeSeries::new(index, data);
assert_eq!(ts.nth(1), Some(DataPoint::new(2, 2.5)));
assert_eq!(ts.nth(10), None);Sourcepub fn at(&self, timestamp: i64) -> f64
pub fn at(&self, timestamp: i64) -> f64
Return element by its timestamp index. Or 0 if not found
§Example
use timeseries::TimeSeries;
let index = vec![100, 160, 220];
let data = vec![1.0, 2.5, 3.2];
let ts = TimeSeries::new(index, data);
assert_eq!(ts.at(10), 0.0);
assert_eq!(ts.at(110), 1.0);
assert_eq!(ts.at(165), 2.5);
assert_eq!(ts.at(500), 3.2);Sourcepub fn iter(&self) -> TimeSeriesIter<'_> ⓘ
pub fn iter(&self) -> TimeSeriesIter<'_> ⓘ
Create iterator
Sourcepub fn merge(&self, other: &TimeSeries) -> TimeSeries
pub fn merge(&self, other: &TimeSeries) -> TimeSeries
Merge 2 series. The resulting series will contain data points from both series If series contains data point with the same timestamp, then the value from first series is taken
§Example
Trait Implementations§
Source§impl Clone for TimeSeries
impl Clone for TimeSeries
Source§fn clone(&self) -> TimeSeries
fn clone(&self) -> TimeSeries
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TimeSeries
impl Debug for TimeSeries
Source§impl Display for TimeSeries
impl Display for TimeSeries
Source§impl FromIterator<DataPoint> for TimeSeries
impl FromIterator<DataPoint> for TimeSeries
Source§impl PartialEq for TimeSeries
impl PartialEq for TimeSeries
Auto Trait Implementations§
impl Freeze for TimeSeries
impl RefUnwindSafe for TimeSeries
impl Send for TimeSeries
impl Sync for TimeSeries
impl Unpin for TimeSeries
impl UnwindSafe for TimeSeries
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more