[](https://tsfel.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/aeon-toolkit/aeon/blob/main/LICENSE)

[](https://pypi.org/project/tsfel/)
[](https://pepy.tech/project/tsfel)
[](https://colab.research.google.com/github/fraunhoferportugal/tsfel/blob/master/notebooks/TSFEL_HAR_Example.ipynb)
[](https://join.slack.com/t/tsfel/shared_invite/zt-2pnrdi1s4-kCROK6R1mSP3D2MnSXUSZg)
# Time Series Feature Extraction Library
<p align="center">
<a href="https://readthedocs.org/projects/tsfel/badge/?version=latest"><img src="https://raw.githubusercontent.com/fraunhoferportugal/tsfel/master/docs/imgs/tsfel_feature_sets.png" width="100%" alt="tsfel logo" /></a>
</p>
## Intuitive time series feature extraction
`TSFEL` is an open-source Python library for time series analysis. It centralizes a large and powerful feature set of
several feature extraction methods from statistical, temporal, spectral, and fractal domains.
The documentation is available [here](https://github.com/fraunhoferportugal/tsfel/issues).
You can install `TSFEL` via pip using the following:
```python
pip install tsfel
```
A release on conda-forge is coming soon.
## Getting started
Below is a quick example of how to use `TSFEL` for time series feature extraction:
```python
import tsfel
# Loads a 10 s single lead ECG
data = tsfel.datasets.load_biopluxecg()
# Set up the default configuration using using the statistical, temporal and spectral feature sets.
cfg = tsfel.get_features_by_domain()
# Extract features
X = tsfel.time_series_features_extractor(cfg, data)
```
For a more detailed walk-through — including input/output data formats, extraction routine configuration, and how to
implement your custom features — refer to the documentation here.
## Highlights
- **Intuitive, fast deployment, and reproducible**: Easily configure your feature extraction pipeline and store the
configuration file to ensure reproducibility.
- **Computational complexity evaluation**: Estimate the computational time required for feature extraction in advance.
- **Comprehensive documentation**: Each feature extraction method is accompanied by a detailed explanation.
- **Unit tested**: We provide an extensive suite of unit tests for each feature to ensure accurate and reliable feature
calculation.
- **Easily extended**: Adding new features is straightforward, and we encourage contributions of custom features to the
community.
## Available features
`TSFEL` automatically extracts more than 65 distinct features across statistical, temporal, spectral, and fractal
domains.
#### Statistical domain
| Features | Computational Cost |
|---------------------------|:------------------:|
| Absolute energy | 1 |
| Average power | 1 |
| ECDF | 1 |
| ECDF Percentile | 1 |
| ECDF Percentile Count | 1 |
| Entropy | 1 |
| Histogram | 1 |
| Interquartile range | 1 |
| Kurtosis | 1 |
| Max | 1 |
| Mean | 1 |
| Mean absolute deviation | 1 |
| Median | 1 |
| Median absolute deviation | 1 |
| Min | 1 |
| Root mean square | 1 |
| Skewness | 1 |
| Standard deviation | 1 |
| Variance | 1 |
#### Temporal domain
| Features | Computational Cost |
|-------------------------|:------------------:|
| Area under the curve | 1 |
| Autocorrelation | 2 |
| Centroid | 1 |
| Lempel-Ziv-Complexity\* | 2 |
| Mean absolute diff | 1 |
| Mean diff | 1 |
| Median absolute diff | 1 |
| Median diff | 1 |
| Negative turning points | 1 |
| Peak to peak distance | 1 |
| Positive turning points | 1 |
| Signal distance | 1 |
| Slope | 1 |
| Sum absolute diff | 1 |
| Zero crossing rate | 1 |
| Neighbourhood peaks | 1 |
\* Disabled by default due to its longer execution time compared to other features.
#### Spectral domain
| Features | Computational Cost |
|----------------------------------|:------------------:|
| FFT mean coefficient | 1 |
| Fundamental frequency | 1 |
| Human range energy | 1 |
| LPCC | 1 |
| MFCC | 1 |
| Max power spectrum | 1 |
| Maximum frequency | 1 |
| Median frequency | 1 |
| Power bandwidth | 1 |
| Spectral centroid | 2 |
| Spectral decrease | 1 |
| Spectral distance | 1 |
| Spectral entropy | 1 |
| Spectral kurtosis | 2 |
| Spectral positive turning points | 1 |
| Spectral roll-off | 1 |
| Spectral roll-on | 1 |
| Spectral skewness | 2 |
| Spectral slope | 1 |
| Spectral spread | 2 |
| Spectral variation | 1 |
| Wavelet absolute mean | 2 |
| Wavelet energy | 2 |
| Wavelet standard deviation | 2 |
| Wavelet entropy | 2 |
| Wavelet variance | 2 |
#### Fractal domain
| Features | Computational Cost |
|--------------------------------------|:------------------:|
| Detrended fluctuation analysis (DFA) | 3 |
| Higuchi fractal dimension | 3 |
| Hurst exponent | 3 |
| Maximum fractal length | 3 |
| Multiscale entropy (MSE) | 1 |
| Petrosian fractal dimension | 1 |
_Fractal domain features are typically applied to relatively longer signals to capture meaningful patterns, and it's
usually
unnecessary to previously divide the signal into shorter windows. Therefore, this domain is disabled in the default
feature
configuration files._
## Support & General discussion
For bug reports, please use the [GitHub issue tracker](https://github.com/fraunhoferportugal/tsfel/issues). To make
feature requests, share ideas, engage in general discussions, or receive announcements, you're welcome to join
our [Slack community](https://join.slack.com/t/tsfel/shared_invite/zt-2pnrdi1s4-kCROK6R1mSP3D2MnSXUSZg).
## Citing
If you use `TSFEL` in your work, please cite the following publication:
Barandas, Marília and Folgado, Duarte, et al. "*TSFEL: Time Series Feature Extraction Library.*" SoftwareX 11 (
2020). [https://doi.org/10.1016/j.softx.2020.100456](https://doi.org/10.1016/j.softx.2020.100456)
## Acknowledgements
We gratefully acknowledge the financial support received from the Center for Responsible AI and the Total Integrated and
Predictive Manufacturing System Platform for Industry 4.0 projects.
Raw data
{
"_id": null,
"home_page": "https://github.com/fraunhoferportugal/tsfel/",
"name": "tsfel",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Fraunhofer Portugal",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/88/94/e102c2c55fe7a1753da2dd94fbcbbf3bceffac1dfa1659156c7bb0218d4d/tsfel-0.1.9.tar.gz",
"platform": null,
"description": "[](https://tsfel.readthedocs.io/en/latest/?badge=latest)\n[](https://github.com/aeon-toolkit/aeon/blob/main/LICENSE)\n\n[](https://pypi.org/project/tsfel/)\n[](https://pepy.tech/project/tsfel)\n[](https://colab.research.google.com/github/fraunhoferportugal/tsfel/blob/master/notebooks/TSFEL_HAR_Example.ipynb)\n[](https://join.slack.com/t/tsfel/shared_invite/zt-2pnrdi1s4-kCROK6R1mSP3D2MnSXUSZg)\n\n# Time Series Feature Extraction Library\n\n<p align=\"center\">\n <a href=\"https://readthedocs.org/projects/tsfel/badge/?version=latest\"><img src=\"https://raw.githubusercontent.com/fraunhoferportugal/tsfel/master/docs/imgs/tsfel_feature_sets.png\" width=\"100%\" alt=\"tsfel logo\" /></a>\n</p>\n\n## Intuitive time series feature extraction\n\n`TSFEL` is an open-source Python library for time series analysis. It centralizes a large and powerful feature set of\nseveral feature extraction methods from statistical, temporal, spectral, and fractal domains.\n\nThe documentation is available [here](https://github.com/fraunhoferportugal/tsfel/issues).\n\nYou can install `TSFEL` via pip using the following:\n\n```python\npip install tsfel\n```\n\nA release on conda-forge is coming soon.\n\n## Getting started\n\nBelow is a quick example of how to use `TSFEL` for time series feature extraction:\n\n```python\nimport tsfel\n\n# Loads a 10 s single lead ECG\ndata = tsfel.datasets.load_biopluxecg()\n\n# Set up the default configuration using using the statistical, temporal and spectral feature sets. \ncfg = tsfel.get_features_by_domain()\n\n# Extract features\nX = tsfel.time_series_features_extractor(cfg, data)\n```\n\nFor a more detailed walk-through \u2014 including input/output data formats, extraction routine configuration, and how to\nimplement your custom features \u2014 refer to the documentation here.\n\n## Highlights\n\n- **Intuitive, fast deployment, and reproducible**: Easily configure your feature extraction pipeline and store the\n configuration file to ensure reproducibility.\n- **Computational complexity evaluation**: Estimate the computational time required for feature extraction in advance.\n- **Comprehensive documentation**: Each feature extraction method is accompanied by a detailed explanation.\n- **Unit tested**: We provide an extensive suite of unit tests for each feature to ensure accurate and reliable feature\n calculation.\n- **Easily extended**: Adding new features is straightforward, and we encourage contributions of custom features to the\n community.\n\n## Available features\n\n`TSFEL` automatically extracts more than 65 distinct features across statistical, temporal, spectral, and fractal\ndomains.\n\n#### Statistical domain\n\n| Features | Computational Cost |\n|---------------------------|:------------------:|\n| Absolute energy | 1 |\n| Average power | 1 |\n| ECDF | 1 |\n| ECDF Percentile | 1 |\n| ECDF Percentile Count | 1 |\n| Entropy | 1 |\n| Histogram | 1 |\n| Interquartile range | 1 |\n| Kurtosis | 1 |\n| Max | 1 |\n| Mean | 1 |\n| Mean absolute deviation | 1 |\n| Median | 1 |\n| Median absolute deviation | 1 |\n| Min | 1 |\n| Root mean square | 1 |\n| Skewness | 1 |\n| Standard deviation | 1 |\n| Variance | 1 |\n\n#### Temporal domain\n\n| Features | Computational Cost |\n|-------------------------|:------------------:|\n| Area under the curve | 1 |\n| Autocorrelation | 2 |\n| Centroid | 1 |\n| Lempel-Ziv-Complexity\\* | 2 |\n| Mean absolute diff | 1 |\n| Mean diff | 1 |\n| Median absolute diff | 1 |\n| Median diff | 1 |\n| Negative turning points | 1 |\n| Peak to peak distance | 1 |\n| Positive turning points | 1 |\n| Signal distance | 1 |\n| Slope | 1 |\n| Sum absolute diff | 1 |\n| Zero crossing rate | 1 |\n| Neighbourhood peaks | 1 |\n\n\\* Disabled by default due to its longer execution time compared to other features.\n\n#### Spectral domain\n\n| Features | Computational Cost |\n|----------------------------------|:------------------:|\n| FFT mean coefficient | 1 |\n| Fundamental frequency | 1 |\n| Human range energy | 1 |\n| LPCC | 1 |\n| MFCC | 1 |\n| Max power spectrum | 1 |\n| Maximum frequency | 1 |\n| Median frequency | 1 |\n| Power bandwidth | 1 |\n| Spectral centroid | 2 |\n| Spectral decrease | 1 |\n| Spectral distance | 1 |\n| Spectral entropy | 1 |\n| Spectral kurtosis | 2 |\n| Spectral positive turning points | 1 |\n| Spectral roll-off | 1 |\n| Spectral roll-on | 1 |\n| Spectral skewness | 2 |\n| Spectral slope | 1 |\n| Spectral spread | 2 |\n| Spectral variation | 1 |\n| Wavelet absolute mean | 2 |\n| Wavelet energy | 2 |\n| Wavelet standard deviation | 2 |\n| Wavelet entropy | 2 |\n| Wavelet variance | 2 |\n\n#### Fractal domain\n\n| Features | Computational Cost |\n|--------------------------------------|:------------------:|\n| Detrended fluctuation analysis (DFA) | 3 |\n| Higuchi fractal dimension | 3 |\n| Hurst exponent | 3 |\n| Maximum fractal length | 3 |\n| Multiscale entropy (MSE) | 1 |\n| Petrosian fractal dimension | 1 |\n\n_Fractal domain features are typically applied to relatively longer signals to capture meaningful patterns, and it's\nusually\nunnecessary to previously divide the signal into shorter windows. Therefore, this domain is disabled in the default\nfeature\nconfiguration files._\n\n## Support & General discussion\n\nFor bug reports, please use the [GitHub issue tracker](https://github.com/fraunhoferportugal/tsfel/issues). To make\nfeature requests, share ideas, engage in general discussions, or receive announcements, you're welcome to join\nour [Slack community](https://join.slack.com/t/tsfel/shared_invite/zt-2pnrdi1s4-kCROK6R1mSP3D2MnSXUSZg).\n\n## Citing\n\nIf you use `TSFEL` in your work, please cite the following publication:\n\nBarandas, Mar\u00edlia and Folgado, Duarte, et al. \"*TSFEL: Time Series Feature Extraction Library.*\" SoftwareX 11 (\n2020). [https://doi.org/10.1016/j.softx.2020.100456](https://doi.org/10.1016/j.softx.2020.100456)\n\n## Acknowledgements\n\nWe gratefully acknowledge the financial support received from the Center for Responsible AI and the Total Integrated and\nPredictive Manufacturing System Platform for Industry 4.0 projects.\n",
"bugtrack_url": null,
"license": null,
"summary": "Library for time series feature extraction",
"version": "0.1.9",
"project_urls": {
"Homepage": "https://github.com/fraunhoferportugal/tsfel/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7cbf05728562275374b6aeed5683355b20066b201b140ac872158b3898983f15",
"md5": "b80c4dd27ff9b58656cc2d29e271a482",
"sha256": "645935796b20a15dabd406dd1ffa59a2d38f27c6f89114f9b7b3b23197d42ed1"
},
"downloads": -1,
"filename": "tsfel-0.1.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b80c4dd27ff9b58656cc2d29e271a482",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 62991,
"upload_time": "2024-09-12T10:43:35",
"upload_time_iso_8601": "2024-09-12T10:43:35.956940Z",
"url": "https://files.pythonhosted.org/packages/7c/bf/05728562275374b6aeed5683355b20066b201b140ac872158b3898983f15/tsfel-0.1.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8894e102c2c55fe7a1753da2dd94fbcbbf3bceffac1dfa1659156c7bb0218d4d",
"md5": "4cea07c2eb1479c08b2cf4871aefe9e2",
"sha256": "676a5eea884eea1a129252998f945ebd2be3aaa202cae59eabb9d6ab08d5e187"
},
"downloads": -1,
"filename": "tsfel-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "4cea07c2eb1479c08b2cf4871aefe9e2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 59646,
"upload_time": "2024-09-12T10:43:38",
"upload_time_iso_8601": "2024-09-12T10:43:38.034974Z",
"url": "https://files.pythonhosted.org/packages/88/94/e102c2c55fe7a1753da2dd94fbcbbf3bceffac1dfa1659156c7bb0218d4d/tsfel-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-12 10:43:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fraunhoferportugal",
"github_project": "tsfel",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tsfel"
}