pyDOE3
Design of experiments for Python
What it is and what it does
pyDOE3 is a Python package for constructing experimental designs used in scientific research, engineering, and statistics. It provides a comprehensive suite of design methods spanning factorial designs (full and fractional), response-surface designs (Box-Behnken, central-composite), randomized sampling (Latin hypercube, random k-means), low-discrepancy sequences (Sobol, Halton, Korobov), Taguchi designs for robust optimization, and advanced optimal design algorithms with multiple search strategies. The package depends on numpy and scipy for numerical computation.
Scientists and engineers use pyDOE3 to systematically plan experiments that explore parameter spaces efficiently, reduce the number of required trials, or optimize designs according to statistical criteria. It is typically used in the planning phase of research to generate design matrices that guide data collection.
Use it for:
- Generate full or fractional factorial designs to explore all factor combinations or their subsets in experimental studies
- Create Latin hypercube samples for efficient exploration of high-dimensional parameter spaces with uniform coverage
- Design response-surface experiments (Box-Behnken, central-composite) to model and optimize system behavior
- Apply Taguchi design methods to identify robust parameter settings that minimize sensitivity to noise
- Construct low-discrepancy sequences (Sobol, Halton) for quasi-random sampling in Monte Carlo simulations
- Use optimal design algorithms with various criteria (D, A, G, etc.) to maximize information from limited experimental runs
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pyDOE3 provides functions to construct experimental designs for scientific and engineering research, including factorial, response-surface, randomized, low-discrepancy, sampling, Taguchi, optimal, and sparse grid designs.
Yes, if you need to construct experimental designs for research or engineering. The package is mature (marked Production/Stable), has low install friction, and covers a broad range of design methods. However, the archived repository and abandoned maintenance status mean you should not expect active bug fixes or compatibility updates; use it for stable, well-tested design generation but plan to fork or maintain locally if you encounter issues with future Python or dependency versions.
Install
pydoe3 on PyPI
pip
pip install pydoe3uv
uv add pydoe3poetry
poetry add pydoe3Installing pyDOE3
Before you install
Low install friction with only numpy and scipy as runtime dependencies. Repository is archived and marked abandoned as of the fact sheet date, though the latest release is recent (2026-01-12); maintenance status is a concern for long-term support.
License in practice
BSD-3-Clause (permissive) allows commercial and private use with attribution and liability disclaimer; no restrictions on modification or redistribution.
Quickstart
pip install pyDOE3
import numpy as np
from pyDOE3 import fullfact, bbdesign, lhs
# Full factorial design for 3 factors, 2 levels each
design = fullfact([2, 2, 2])
# Box-Behnken design for 3 factors
bb = bbdesign(3)
# Latin Hypercube Sampling for 5 factors, 10 samples
lhs_samples = lhs(5, samples=10)
Verify before relying
- Whether the archived repository status will affect future bug fixes or compatibility with newer numpy/scipy versions
- Whether all design functions are actively tested against current Python 3.9–3.12 environments
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — numpy, scipy |
| Maintenance | abandoned — 214 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 78,258/month — #14,455 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pydoe3-1.6.2-py2.py3-none-any.whl
Keywords: DOE, design of experiments, experimental design, optimal design, optimization, python, sparse grids, statistics, taguchi design
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
pydoePyDOE constructs experimental designs for…
permissive · top 5,000 on PyPI
rdrobustImplements regression discontinuity (RD) design…
copyleft · top 15,000 on PyPI
spglmFits Gaussian, Poisson, QuasiPoisson, and…
permissive · top 15,000 on PyPI
pyedbPyEDB is a high-level Python API for reading,…
permissive · top 15,000 on PyPI
dwave-samplersProvides a collection of classical and hybrid…
permissive · top 15,000 on PyPI
scikit-posthocsProvides post hoc statistical tests for…
permissive · top 15,000 on PyPI
pyvscPyVSC generates randomized test stimulus and…
permissive · top 15,000 on PyPI
findiffComputes finite difference numerical…
permissive · top 15,000 on PyPI
pyamgPyAMG provides Algebraic Multigrid (AMG)…
permissive · top 15,000 on PyPI
SALibSALib implements global sensitivity analysis…
permissive · top 15,000 on PyPI