Skip to main content

Python

Install from PyPI:

pip install pragmastat==14.0.1

Source code: https://github.com/AndreyAkinshin/pragmastat/tree/v14.0.1/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.1.tar.gz (60.4 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: pragmastat-14.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 8c019d5f688f6e1ae8ed5ae9353a9d43c57a56d040ca9376e04662009b1700b6
MD5 5a0474db13830905b3c8bd5e159085cf
BLAKE2b-256 7af56a2fe0086c84d1d8ed7010f34c866055a178c9e312d93993f16a6e9ecf95

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragmastat-14.0.1.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

This release

14.0.1 This release

1 file

14.0.0

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