Skip to main content

fdars – Functional Data Analysis for Python

CI PyPI MIT licensed Status: Experimental

High-performance Functional Data Analysis for Python, powered by a Rust backend (fdars-core).

The Fdata Class

The central object in fdars is Fdata — a functional data container that bundles observation data, evaluation grid, identifiers, and metadata into a single object (mirroring the R package's fdata class).

import numpy as np
import pandas as pd
from fdars import Fdata

# Create functional data: 30 sine curves on [0, 1]
t = np.linspace(0, 1, 100)
X = np.array([np.sin(2 * np.pi * t + p) + np.random.normal(0, 0.1, 100)
              for p in np.random.uniform(0, np.pi, 30)])

# Attach metadata as a pandas DataFrame
meta = pd.DataFrame({"group": ["A"] * 15 + ["B"] * 15,
                      "score": np.random.randn(30)})
fd = Fdata(X, argvals=t, metadata=meta)
fd
# Fdata (1D)  –  30 obs × 100 points  –  range [0.0, 1.0]  –  metadata: group, score

# Subset — metadata DataFrame and IDs are preserved
fd_sub = fd[0:10]
fd_sub.metadata  # DataFrame with 10 rows

# Methods delegate to the Rust backend
mu = fd.mean()                    # pointwise mean
fd_c = fd.center()                # centered Fdata
d1 = fd.deriv(nderiv=1)           # first derivative (returns Fdata)
norms = fd.norm(p=2.0)            # L2 norms per curve
depths = fd.depth("fraiman_muniz") # depth values
D = fd.distance(method="lp")      # self-distance matrix

# 2D surfaces work the same way
surfaces = np.random.randn(5, 8, 10)       # 5 surfaces on 8×10 grid
fd2d = Fdata(surfaces, argvals=(np.arange(8), np.arange(10)))

You can still call low-level functions directly with raw NumPy arrays:

from fdars.depth import fraiman_muniz_1d
from fdars.metric import lp_self_1d
from fdars.clustering import kmeans_fd

depths = fraiman_muniz_1d(X, X)
D = lp_self_1d(X, t, p=2.0)
result = kmeans_fd(X, t, k=3, seed=42)

Modules

Module Description
fdars.Fdata Functional data container (1D curves, 2D surfaces) with metadata
fdars.fdata Low-level functional data operations (mean, derivatives, norms, centering)
fdars.depth Depth functions (Fraiman-Muniz, modal, band, random projection, …)
fdars.metric Distance metrics (Lp, Hausdorff, DTW, soft-DTW, Fourier, h-shift)
fdars.basis Basis representations (B-splines, P-splines, Fourier)
fdars.smoothing Nonparametric smoothing (Nadaraya-Watson, local polynomial, k-NN)
fdars.clustering Clustering (k-means, fuzzy c-means, GMM)
fdars.regression Regression (FPC linear, PLS, nonparametric, robust, FOSR, FANOVA)
fdars.alignment Elastic alignment (SRSF, Karcher mean, elastic FPCA)
fdars.outliers Outlier detection (LRT, outliergram, magnitude-shape)
fdars.seasonal Seasonal analysis (SAZED, autoperiod, STL, peak detection)
fdars.spm Statistical process monitoring (Phase I/II, EWMA, CUSUM)
fdars.classification Classification (LDA, QDA, k-NN, kernel with cross-validation)
fdars.tolerance Tolerance bands (FPCA, conformal, Degras SCB)
fdars.conformal Conformal prediction (split, jackknife+)
fdars.simulation Simulation (Karhunen-Loève, Gaussian processes)
fdars.explain Explainability (SHAP, PDP, permutation importance, significant regions)

Quick Start

git clone https://github.com/sipemu/pyfda.git
cd pyfda
python -m venv .venv && source .venv/bin/activate
pip install maturin numpy
maturin develop --release

The package exposes 16 submodules wrapping 130+ functions with zero-copy NumPy conversion. Requires Python >= 3.9.

Documentation

Development

# Install dev dependencies
pip install maturin numpy pytest matplotlib

# Build in development mode
maturin develop

# Run tests
pytest tests/

# Build documentation
pip install mkdocs-material
mkdocs serve

MSRV

The minimum supported Rust version is 1.83.

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fdars-0.3.0.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

fdars-0.3.0-cp39-abi3-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.9+Windows x86-64

fdars-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

fdars-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

fdars-0.3.0-cp39-abi3-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

fdars-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file fdars-0.3.0.tar.gz.

File metadata

  • Download URL: fdars-0.3.0.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fdars-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2c535f4b4869c11168cf2b786015a6de4a24ac3f2deb07ed4f778d488fe3c6ba
MD5 4c32a9807dadd60d39599fd9b87c98b2
BLAKE2b-256 073a6e7e2b67842edac64d3589d7e097c19d15200f635e4bc85b577e31b18270

See more details on using hashes here.

File details

Details for the file fdars-0.3.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: fdars-0.3.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fdars-0.3.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 03ae5dc96fa9fb119085f6507aeaf7b3bfc80ca7e9a8d55bdc4f9db339173b89
MD5 8affae4a8536083ce50d361ee91254ec
BLAKE2b-256 0770a692e45cbca396b8e06d0b87c510651269d56f75a2fe17b37ad2f0640697

See more details on using hashes here.

File details

Details for the file fdars-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fdars-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 65c17f1bdd64768dee25aec44b6e2c7b6230a7f5b59bd52b4b60f3cae70012f4
MD5 e42da95a984e438eaac2b096452f967d
BLAKE2b-256 978e50578885c8000b6867a7090a9ff2025a0aebe1ae897ac47f78a5a1ecc166

See more details on using hashes here.

File details

Details for the file fdars-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fdars-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5fd34a0071c395e4a28247b2993d119544a79a25b8f457fb5b7218d03fdd5d38
MD5 7c5ca1e345df60428bd147a6f2081717
BLAKE2b-256 e966983078fc8c99a8df64f950840078492d306d846fc921e881018d8677311a

See more details on using hashes here.

File details

Details for the file fdars-0.3.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: fdars-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fdars-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01764c8c5295fcc62845d9038fedf40d63995b9fb0ec18557a536dbfcc00418d
MD5 234da232300e7e77dbfe59b2d81b2c3e
BLAKE2b-256 8fb84c080f4f3912a201cd0b9dcbd5ca65876d0690f8031e71feba2838c70453

See more details on using hashes here.

File details

Details for the file fdars-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fdars-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 118462247cc941c5709ea0f09bbfa32eae36833a602025c5cf6580b524c4bedc
MD5 b1ea5df62f344cb727bcbd55eb4ab168
BLAKE2b-256 e66d03aef051b767d2d535a78bb61dd496d1196988533e91870e6a2b31e2ead4

See more details on using hashes here.

Release history Release notifications | RSS feed

0.9.0

6 files

0.7.0

6 files

0.6.0

6 files

0.5.0

6 files

0.4.0

6 files

This release

0.3.0 This release

6 files

0.2.0

6 files

0.1.0

6 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page