Skip to main content

Python

Install from PyPI:

pip install pragmastat==14.0.0

Source code: https://github.com/AndreyAkinshin/pragmastat/tree/v14.0.0/py

Pragmastat on PyPI: https://pypi.org/project/pragmastat/

Demo

from pragmastat import (
    Metric,
    Rng,
    Sample,
    Threshold,
    center,
    center_bounds,
    compare1,
    compare2,
    disparity,
    disparity_bounds,
    ratio,
    ratio_bounds,
    shift,
    shift_bounds,
    spread,
    spread_bounds,
)
from pragmastat.distributions import Additive, Exp, Multiplic, Power, Uniform


def main():
    # --- One-Sample ---

    x = Sample(list(range(1, 201)))

    result = center(x)
    print(result.value)  # 100.5
    bounds = center_bounds(x, 1e-3)
    print(f"Bounds(lower={bounds.lower}, upper={bounds.upper})")  # Bounds(lower=86.0, upper=115.0)
    print(spread(x).value)  # 59.0
    bounds = spread_bounds(x, 1e-3, seed="demo")
    print(f"Bounds(lower={bounds.lower}, upper={bounds.upper})")  # Bounds(lower=44.0, upper=87.0)

    # --- Two-Sample ---

    x = Sample(list(range(1, 201)))
    y = Sample(list(range(101, 301)))

    print(shift(x, y).value)  # -100.0
    bounds = shift_bounds(x, y, 1e-3)
    print(f"Bounds(lower={bounds.lower}, upper={bounds.upper})")  # Bounds(lower=-120.0, upper=-80.0)
    print(ratio(x, y).value)  # 0.5008354224706334
    bounds = ratio_bounds(x, y, 1e-3)
    print(
        f"Bounds(lower={bounds.lower}, upper={bounds.upper})"
    )  # Bounds(lower=0.4066666666666668, upper=0.5958333333333332)
    print(disparity(x, y).value)  # -1.694915254237288
    bounds = disparity_bounds(x, y, 1e-3, seed="demo")
    print(
        f"Bounds(lower={bounds.lower}, upper={bounds.upper})"
    )  # Bounds(lower=-3.1025641025641026, upper=-0.8494623655913979)

    # --- Confirmatory Comparison ---

    x = Sample(list(range(1, 201)))
    projection = compare1(x, [Threshold(Metric.CENTER, 50.0, 1e-3)])[0]
    print(projection.verdict.value)  # greater

    x = Sample(list(range(1, 201)))
    y = Sample(list(range(101, 301)))
    projection = compare2(x, y, [Threshold(Metric.SHIFT, 0.0, 1e-3)])[0]
    print(projection.verdict.value)  # less

    # --- Randomization ---

    rng = Rng("demo-uniform")
    print(rng.uniform_float())  # 0.2640554428629759
    print(rng.uniform_float())  # 0.9348534835582796

    rng = Rng("demo-uniform-int")
    print(rng.uniform_int(0, 100))  # 41

    rng = Rng("demo-sample")
    print(rng.sample([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3))  # [3, 8, 9]

    rng = Rng("demo-resample")
    print(rng.resample([1, 2, 3, 4, 5], 7))  # [3, 1, 3, 2, 4, 1, 2]

    rng = Rng("demo-shuffle")
    print(rng.shuffle([1, 2, 3, 4, 5]))  # [4, 2, 3, 5, 1]

    # --- Distributions ---

    rng = Rng("demo-dist-additive")
    print(Additive(0, 1).sample(rng))  # 0.17410448679568188

    rng = Rng("demo-dist-multiplic")
    print(Multiplic(0, 1).sample(rng))  # 1.1273244602673853

    rng = Rng("demo-dist-exp")
    print(Exp(1).sample(rng))  # 0.6589065267276553

    rng = Rng("demo-dist-power")
    print(Power(1, 2).sample(rng))  # 1.023677535537084

    rng = Rng("demo-dist-uniform")
    print(Uniform(0, 10).sample(rng))  # 6.54043657816832


if __name__ == "__main__":
    main()

Download files

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

Source Distribution

pragmastat-14.0.0.tar.gz (60.4 kB view details)

Uploaded Source

File details

Details for the file pragmastat-14.0.0.tar.gz.

File metadata

  • Download URL: pragmastat-14.0.0.tar.gz
  • Upload date:
  • Size: 60.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pragmastat-14.0.0.tar.gz
Algorithm Hash digest
SHA256 9bc364b3b9198479ddf5da403f8dbeb4aa2d6c707d034914b9fec8e4ab0f3d91
MD5 caf9cc3c6b977355e62bf3e9d4b24a78
BLAKE2b-256 9d2d8b3d6e127999032c47d01b3fe11a3257ddbc929b18126c9bde970d03a1a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragmastat-14.0.0.tar.gz:

Publisher: publish.yml on AndreyAkinshin/pragmastat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

14.0.1

1 file

This release

14.0.0 This release

1 file

13.0.1

1 file

13.0.0

1 file

12.1.0

1 file

12.0.1

1 file

12.0.0

1 file

11.1.1

1 file

11.1.0

1 file

11.0.1

1 file

11.0.0

1 file

10.0.6

1 file

10.0.5

1 file

10.0.4

1 file

10.0.3

1 file

10.0.2

1 file

10.0.1

1 file

10.0.0

1 file

9.0.0

1 file

8.0.0

1 file

7.0.1

1 file

7.0.0

1 file

6.0.1

1 file

6.0.0

1 file

5.2.1

1 file

5.2.0

1 file

5.1.0

1 file

5.0.0

1 file

4.0.3

1 file

4.0.2

1 file

4.0.1

1 file

4.0.0

1 file

3.2.4

1 file

3.2.3

1 file

3.2.2

1 file

3.2.1

1 file

3.2.0

1 file

3.1.33

1 file

3.1.32

1 file

3.1.30

1 file

3.1.29

1 file

3.1.28

1 file

3.1.27

1 file

3.1.26

1 file

3.1.25

1 file

3.1.24

1 file

3.1.23

1 file

3.1.22

1 file

3.1.21

1 file

3.1.20

1 file

3.1.19

1 file

3.1.18

1 file

3.1.17

1 file

3.1.16

1 file

3.1.15

1 file

3.1.14

1 file

3.1.13

1 file

3.1.12

1 file

3.1.11

1 file

3.1.10

1 file

3.1.9

1 file

3.1.8

1 file

3.1.7

1 file

3.1.6

1 file

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