# [Numpy-discussion] Univariate and multivariate density estimation using Python

Jon Saenz jsaenz at wm.lc.ehu.es
Tue Sep 12 11:56:16 EDT 2000

```Hello, all.

I am announcing a C extension module which computes univariate and
multivariate probability density functions by means of a kernel-based
approach.

The module includes functions to perform the estimation using the
following kernels:
* One-dimensional data:
Epanechnikov
Biweight
Triangular
* 2 or 3-dimensional data:
Epanechnikov
Multivariate gaussian

For multivariate data, there is the optional feature of scaling each axis
by means of a matrix. This approach allows the definition of Fukunaga-type
estimators.

The functions in the module are used as follows:

import KPDF
# edata and gdata must be numpy arrays of shapes (N,) and (E,)
# while h is a scalar
# pdf1 is a numpy array which holds the PDF evaluated at points
# gdata with experimental data in edata. pdf1.shape=(E,)
pdf1=KPDF.UPDFEpanechnikov(edata,gdata,h)

# For multivariate estimation, edata and gdata must be numpy arrays of
# shapes (N,2|3) and (E,2|3) while h is a scalar
# pdf2 is a numpy array which holds the PDF evaluated at points
# gdata with experimental data in edata. pdf2.shape=(E,)
pdf2=KPDF.MPDFEpanechnikov(e2data,g2data,h)

# For Fukunaga-type estimators, Sm1 must be a numpy array 2x2(3x3)
# and holds the covariance matrix. sqrtdetS is the square root of the
# determinant
pdf2=KPDF.MPDFEpanechnikov(e2data,g2data,h,Sm1,sqrtdetS)

There is not a lot of documentation in the module, but I have a serious
commitment of preparing it soon.

http://starship.python.net/crew/jsaenz/KPDF.tar.gz

Feedback of interested users will be greatly appreciated.

Regards.

Jon Saenz.				| Tfno: +34 946012470
Depto. Fisica Aplicada II               | Fax:  +34 944648500