Skip to main content
Help improve PyPI by participating in a 5-minute user interface survey!

Design of experiments for Python

Project Description

pyDOE2: An experimental design package for python

`pyDOE2` is a fork of the [`pyDOE`]( package
that is designed to help the scientist, engineer, statistician, etc., to
construct appropriate experimental designs.

This fork came to life to solve bugs and issues that remained unsolved in the
original package.


The package currently includes functions for creating designs for any
number of factors:

- Factorial Designs
- General Full-Factorial (``fullfact``)
- 2-level Full-Factorial (``ff2n``)
- 2-level Fractional Factorial (``fracfact``)
- Plackett-Burman (``pbdesign``)
- Generalized Subset Designs (``gsd``)
- Response-Surface Designs
- Box-Behnken (``bbdesign``)
- Central-Composite (``ccdesign``)
- Randomized Designs
- Latin-Hypercube (``lhs``)

See the original [pyDOE homepage]( for details
on usage and other notes.

What's new?

### Generalized Subset Designs

In pyDOE2 version 1.1 the [Generalized Subset Design (GSD)](
is introduced. GSD is a generalization of traditional fractional factorial
designs to problems where factors can have more than two levels.

In many application problems factors can have categorical or quantitative
factors on more than two levels. Previous reduced designs have not been
able to deal with such types of problems. Full multi-level factorial
designs can handle such problems but are however not economical regarding
the number of experiments.

The GSD provide balanced designs in multi-level experiments with the number
of experiments reduced by a user-specified reduction factor. Complementary
reduced designs are also provided analogous to fold-over in traditional
fractional factorial designs.

GSD is available in pyDOE2 as:

import pyDOE2

levels = [2, 3, 4] # Three factors with 2, 3 or 4 levels respectively.
reduction = 3 # Reduce the number of experiment to approximately a third.

pyDOE2.gsd(levels, reduction)


- NumPy
- SciPy

Installation and download

Through pip:

pip install pyDOE2


`pyDOE` original code was originally converted from code by the following
individuals for use with Scilab:

- Copyright (C) 2012 - 2013 - Michael Baudin
- Copyright (C) 2012 - Maria Christopoulou
- Copyright (C) 2010 - 2011 - INRIA - Michael Baudin
- Copyright (C) 2009 - Yann Collette
- Copyright (C) 2009 - CEA - Jean-Marc Martinez

- Website:

`pyDOE` was converted to Python by the following individual:

- Copyright (c) 2014, Abraham D. Lee

The following individuals forked and works on `pyDOE2`:

- Copyright (C) 2018 - Rickard Sjögren and Daniel Svensson


This package is provided under two licenses:

1. The *BSD License* (3-clause)
2. Any other that the author approves (just ask!)


- [Factorial designs](
- [Plackett-Burman designs](
- [Box-Behnken designs](
- [Central composite designs](
- [Latin-Hypercube designs](
- Surowiec, Izabella, Ludvig Vikström, Gustaf Hector, Erik Johansson,
Conny Vikström, and Johan Trygg. “Generalized Subset Designs in Analytical
Chemistry.” Analytical Chemistry 89, no. 12 (June 20, 2017): 6491–97.

Release history Release notifications

This version
History Node


History Node


History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date (29.0 kB) Copy SHA256 hash SHA256 Source None Feb 2, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page