Skip to main content

Fast path signatures

Project description

chen-signatures

Fast rough path signatures for Python, powered by a high-performance Julia backend.

PyPI Python

chen-signatures brings the speed and numerical stability of Julia’s ChenSignatures.jl to Python via juliacall, offering a modern, actively maintained alternative to existing signature libraries.

It has been benchmarked against both iisignature and pysiglib, showing:

  • Comparable performance to pysiglib, a modern C++/Python implementation
  • Consistently faster performance than iisignature across typical configurations

Full benchmark notebooks and articles will be published separately.


Why chen-signatures?

Feature chen-signatures iisignature pysiglib
Speed 🚀 Optimized Julia backend ⚠️ Older implementation 🔄 Similar to chen-signatures
Python ≥ 3.10 ✅ Yes ❌ No (≤3.9 only) ✅ Yes
Python 3.13 ✅ Yes ❌ No ✅ Yes
Log-signature ✅ Yes ⚠️ Limited ❌ Not supported
Autodiff ✅ Yes (ForwardDiff) ❌ No ❌ No
Maintenance ✅ Active ⚠️ Unmaintained ✅ Active

Installation

pip install chen-signatures

On first import, juliacall will automatically install a lightweight Julia runtime. This happens once per environment.


Quick Start

import chen
import numpy as np

path = np.random.randn(1000, 10)

signature = chen.sig(path, m=5)
logsignature = chen.logsig(path, m=5)

API

sig(path, m)

Compute a truncated signature up to level m.

sig = chen.sig(path, m=3)

logsig(path, m)

Compute log-signatures using the Lyndon basis.

logsig = chen.logsig(path, m=5)

Supported Types

  • float32, float64
  • Any NumPy array-like input
  • Contiguous arrays recommended (handled automatically)

Use Cases

  • Financial time series
  • Sensor data and IoT
  • Neural CDEs / differential ML
  • Representation learning
  • Anomaly detection

Limitations

  • First import is slow (Julia installation)
  • CPU-only execution
  • Uses more memory than minimal C++ libraries

Requirements

  • Python ≥ 3.9
  • NumPy ≥ 1.20
  • ~500MB disk space for Julia runtime

Citation

@software{chen_signatures,
  author = {Combi, Alessandro},
  title = {chen-signatures: Fast rough path signatures for Python},
  year = {2025},
  url = {https://github.com/aleCombi/ChenSignatures.jl}
}

Contributing

https://github.com/aleCombi/ChenSignatures.jl

Project details


Download files

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

Source Distribution

chen_signatures-0.2.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

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

chen_signatures-0.2.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file chen_signatures-0.2.1.tar.gz.

File metadata

  • Download URL: chen_signatures-0.2.1.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for chen_signatures-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ca2d7a416a3056c26c4f2b0a23e8860b6be7ec6889c5ea01bbcfaa9aca0b43e7
MD5 aa9641634c2033ddcff2e46d61622ced
BLAKE2b-256 3235097ea1a98f32e925275f4bb5eba61b8b5c419ffa11892e04f681516361e2

See more details on using hashes here.

File details

Details for the file chen_signatures-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for chen_signatures-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 88c23c71d72d8623ba5bf93210cdb1c06c022aeaea06942cadf9183d6fa24628
MD5 28ea7d76b8f54357cb799c59d0575d81
BLAKE2b-256 ed0988a597d897958160cd94983dd676b801f6a6dc11cb7143e4d3d7c35b53dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page