Skip to content

circstat/pycircstat2

Repository files navigation

logo

PyCircStat2: Circular statistics with Python

PyPI version

A rework of pycircstat.

Key Features | Installlation | API Reference | Examples ( Books | Topics )

Key Features

  • One-Stop Circular Data Analysis Pipeline with Circular Class

    The Circular class simplifies circular data analysis by providing automatic data transformation, descriptive statistics, hypothesis testing, and visualization tools—all in one place.

    from pycircstat2 import Circular
    data = [30, 60, 90, 120, 150]
    circ = Circular(data, unit="degree")
    print(circ.summary())
    circ.plot(plot_rose=True, plot_mean=True)
  • Compatibility with Legacy APIs

    APIs for descriptive statistics and hypothesis testing follow the conventions established by the original circstat-matlab and pycircstat, ensuring ease of use for existing users.

  • Wide-Ranging Circular Distributions

    The package supports a variety of circular distributions, including but not limited to:

    • Symmetric distributions: Circular Uniform, Cardioid, Cartwright, Wrapped Normal, Wrapped Cauchy, von Mises (and its flat-top extension), and Jones-Pewsey.
    • Asymmetric distributions: Sine-skewed Jones-Pewsey, Asymmetric Extended Jones-Pewsey, Inverse Batschelet.

Installation

To install the latest tagged version:

pip install pycircstat2

Or to install the development version, clone the repository and install it with pip install -e:

git clone https://github.com/circstat/pycircstat2
pip install -e pycircstat2

API Reference

The API reference is available here.

Example notebooks

In the notebooks below, we reproduce examples and figures from a few textbooks on circular statistics.

Books

And a few more examples on selective topics:

Topics