NumPy’s module structure#

NumPy has a large number of submodules. Most regular usage of NumPy requires only the main namespace and a smaller set of submodules. The rest either either special-purpose or niche namespaces.

Main namespaces#

Regular/recommended user-facing namespaces for general use:

Special-purpose namespaces#

  • numpy.ctypeslib - interacting with NumPy objects with ctypes

  • numpy.dtypes - dtype classes (typically not used directly by end users)

  • numpy.emath - mathematical functions with automatic domain

  • numpy.lib - utilities & functionality which do not fit the main namespace

  • numpy.rec - record arrays (largely superseded by dataframe libraries)

  • numpy.version - small module with more detailed version info

Legacy namespaces#

Prefer not to use these namespaces for new code. There are better alternatives and/or this code is deprecated or isn’t reliable.

  • numpy.char - legacy string functionality, only for fixed-width strings

  • numpy.distutils (deprecated) - build system support

  • numpy.f2py - Fortran binding generation (usually used from the command line only)

  • numpy.ma - masked arrays (not very reliable, needs an overhaul)

  • numpy.matlib (pending deprecation) - functions supporting matrix instances