## What is Numeric Python?

The Numeric Extensions to Python (NumPy) add powerful multi-dimensional array objects to the wonderful general purpose programming language Python. These new objects give Python the number crunching power of numeric languages like Matlab and IDL while maintaining all of the advantages of the general-purpose programming language Python. A slightly outdated overview of the design and motivation behind this system is contained in the paper on: Extending Python for Numeric Computation presented at the 3rd Python Workshop.

The system has been primarily designed and implemented by Jim Hugunin; however, there have been many valuable contributions by other members of the numerical python community.

## How Do I Get It?

NumPy is a collection of C extension modules to the Python programming language. It is available in source code form that should compile easily on any Unix system, and on Windows platforms. Support for the Macintosh is in the works. An easily to install binary distribution is also provided for Windows NT/95. For more details, see the download page.

## What Does It Consist Of?

These extensions add two new object types to Python, and then include a number of extensions that take advantage of these two new objects.

• Multidimensional Array Objects
• Efficient arrays of homogeneous machine types (floats, longs, complex doubles, …)
• Arbitrary number of dimensions
• Sophisticated structural operations
• Universal Function Objects
• Supports mathematical functions on all python objects
• Very efficient for Array Objects
• Simple interfaces to existing numerical libraries:
• Linear Algebra (LAPACK)
• Fourier Transforms (FFTPACK)
• Random Numbers (RANLIB)

There is a special interest group setup to discuss NumPy. For historical reasons it is known as the matrix-sig. This SIG is hosted by the PSA.

There is an html reference manual distributed with NumPy, you can also view it online.

David Ascher has written a great tutorial to Numeric Python.

## Extensions to the Numeric Extensions

The initial design goal for NumPy was to add a new object type to Python which could be used to interact with both C and FORTRAN based numeric arrays in order to provide interfaces to existing numeric libraries. The base distribution contains interfaces to minimal version of LAPACK, RANLIB, and FFTPACK. If you've built an extension using NumPy, please let me know so I can add it to the list! If you can't make it available on your own web page, I might be able to distribute it from here (depending on the general usefulness of your code).