Table of contents

Section contents

Documentation license

Creative Commons License

pyDOE: The experimental design package for python

The pyDOE package is designed to help the scientist, engineer, statistician, etc., to construct appropriate experimental designs.


All available designs can be accessed after a simple import statement:

>>> from pyDOE import *


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


  • NumPy
  • SciPy

Installation and download

Important note

The installation commands below should be run in a DOS or Unix command shell (not in a Python shell).

Under Windows (version 7 and earlier), a command shell can be obtained by running cmd.exe (through the Run… menu item from the Start menu). Under Unix (Linux, Mac OS X,…), a Unix shell is available when opening a terminal (in Mac OS X, the Terminal program is found in the Utilities folder, which can be accessed through the Go menu in the Finder).

Automatic install or upgrade

One of the automatic installation or upgrade procedures below might work on your system, if you have a Python package installer or use certain Linux distributions.

Under Unix, it may be necessary to prefix the commands below with sudo, so that the installation program has sufficient access rights to the system.

If you have pip, you can try to install the latest version with

pip install --upgrade pyDOE

If you have setuptools, you can try to automatically install or upgrade this package with

easy_install --upgrade pyDOE

Manual download and install

Alternatively, you can simply download the package archive from the Python Package Index (PyPI) and unpack it. The package can then be installed by going into the unpacked directory (pyDOE-...), and running the provided program with

python install

or, for an installation in the user Python library (no additional access rights needed):

python install --user

or, for an installation in a custom directory my_directory:

python install --install-lib my_directory

or, if additional access rights are needed (Unix):

sudo python install

You can also simply move the pyDOE-py* directory that corresponds best to your version of Python to a location that Python can import from (directory in which scripts using pyDOE are run, etc.); the chosen pyDOE-py* directory should then be renamed pyDOE. Python 3 users should then run 2to3 -w . from inside this directory so as to automatically adapt the code to Python 3.

Source code

The latest, bleeding-edge but working code and documentation source are available on GitHub.


Any feedback, questions, bug reports, or success stores should be sent to the author. I’d love to hear from you!


This code was originally published 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:

Much thanks goes to these individuals.


This package is provided under two licenses:

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


There is also a wealth of information on the NIST website about the various design matrices that can be created as well as detailed information about designing/setting-up/running experiments in general.