Skip to main content

Flexible and accessible design of experiments in Python. Provides industry with an easy package to create designs based with limited expert knowledge. Provides researchers with the ability to easily create new criteria and design structures.

Project description

PyOptEx

Package PyPI Latest Release PyPI Downloads
Meta License - BSD 3-Clause docs

PyOptEx (or Python Optimal Experiments) is a package designed to create optimal design of experiments with Python. It is fully open source and can be used for any purpose.

The package is designed for both engineers, and design of experiment researchers. Engineers can use the precreated functions to generate designs for their problems, especially the cost-optimal algorithms. Researchers can easily develop new metrics (criteria) and test them.

To generate experimental designs, there are two main options:

  • Fixed structure: These designs have a fixed number of runs and fixed randomization structure, known upfront. Well-known designs include split-plot, strip-plot, and regular staggered-level designs. A specialization is also included for splitk-plot designs using the update formulas as described in Born and Goos (2025).

  • Cost-optimal designs: These design generation algorithms follow a new DoE philosophy. Instead of fixing the number of runs and randomization structure, the algorithm optimizes directly based on the underlying resource constraints. The user must only specify a budget and a function which computes the resource consumption of a design. Go to Creating a cost-optimal design for an example. The currently implemented algorithm is CODEX.

NOTE: This package does not have a release version yet and is still under active development.

Main features

  • The first complete Python package for optimal design of experiments. Model everything including continuous factors, categorical factors, mixtures, blocked experiments, split-plot experiments, staggered-level experiments.

  • Intuitive design of experiments with cost-optimal designs for everyone. No longer requires expert statistical knowledge before creating experiments.

  • Accounts for any constraint you require. Not only can you choose the randomization structure manually, or let the cost-optimal design algorithms figure it out automatically, you can also specify the physically possible factor combinations for a run.

  • Augmenting designs was never easier. Simply read your initial design to a pandas dataframe and augment it by passing it as a prior.

  • Customize any part of the algorithm, including the optimization criteria (metrics), linear model, encoding of the categorical factors, and much more.

  • Directly optimize for Bayesian a-priori variance ratios in designs with hard-to-change factors.

Getting started

Install this package using pip

pip install pyoptex

Documentation

The documentation for this package can be found at here

Create your first design

See the documentation on Your first design

License

BSD-3 clause, meaning you can use and alter it for any purpose, open-source or commercial! However, any open-source contributions to this project are much appreciated by the community.

Contributing

Any ideas, bugs and features requests can be added as an issue. Any direct code contributions can be added via pull requests.

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

pyoptex-1.0.0a3.tar.gz (70.5 kB view details)

Uploaded Source

Built Distribution

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

pyoptex-1.0.0a3-py3-none-any.whl (91.5 kB view details)

Uploaded Python 3

File details

Details for the file pyoptex-1.0.0a3.tar.gz.

File metadata

  • Download URL: pyoptex-1.0.0a3.tar.gz
  • Upload date:
  • Size: 70.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyoptex-1.0.0a3.tar.gz
Algorithm Hash digest
SHA256 15c90fbe4f4af948f2c5050a678716db3f89bedca971f1c38b4e77b3e2c145d2
MD5 9f85867fc9db613882c8609cb29e0dd8
BLAKE2b-256 0678cdf2631caf98e30cb47c2e5ccb9ad7e1a856bc9ff498a3aea007867b50df

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptex-1.0.0a3.tar.gz:

Publisher: python-publish.yml on mborn1/pyoptex

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

File details

Details for the file pyoptex-1.0.0a3-py3-none-any.whl.

File metadata

  • Download URL: pyoptex-1.0.0a3-py3-none-any.whl
  • Upload date:
  • Size: 91.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyoptex-1.0.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 0f114749bcfd20d24f4c50f094704d5ca533490c83cb1b9cb60f950d5be256e0
MD5 02263188a65e56a650924b192743ffb6
BLAKE2b-256 ca54eed44e14e0b923d1307eaa73d9079e0027ae4ea3e33b801cf37efd052de0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptex-1.0.0a3-py3-none-any.whl:

Publisher: python-publish.yml on mborn1/pyoptex

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

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