Metadata-Version: 2.0
Name: m-pool
Version: 0.0.2
Summary: A wrapper for numpy arrays providing named axes, interpolation, iteration, disk persistence and numerical calcs
Home-page: http://m_pool.readthedocs.org/en/latest/
Author: Charlie Taylor
Author-email: cet@appliedpython.com
License: GPL-3
Download-URL: https://github.com/sonofeft/M_Pool
Keywords: m_pool setuptools development
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 2.7
Provides-Extra: test
Provides-Extra: dev
Requires-Dist: coverage
Requires-Dist: future
Requires-Dist: numexpr
Requires-Dist: numpy
Requires-Dist: scipy
Provides-Extra: dev
Requires-Dist: check-manifest; extra == 'dev'
Provides-Extra: test
Requires-Dist: coverage; extra == 'test'


.. image:: https://travis-ci.org/sonofeft/M_Pool.svg?branch=master
    :target: https://travis-ci.org/sonofeft/M_Pool

.. image:: https://img.shields.io/pypi/v/M_Pool.svg
    :target: https://pypi.python.org/pypi/m_pool

.. image:: https://img.shields.io/pypi/pyversions/M_Pool.svg
    :target: https://wiki.python.org/moin/Python2orPython3

.. image:: https://img.shields.io/pypi/l/M_Pool.svg
    :target: https://pypi.python.org/pypi/m_pool


A Wrapper For Numpy Arrays
==========================

Provides Named Axes, Interpolation, Iteration, Disk Persistence And Numerical Calcs


See the Code at: `<https://github.com/sonofeft/M_Pool>`_

See the Docs at: `<http://m_pool.readthedocs.org/en/latest/>`_

See PyPI page at:`<https://pypi.python.org/pypi/m_pool>`_



M_Pool wraps multidimensional numpy arrays to provide the following features::

    #. MatrixPool objects contain related Axis and Matrix objects
        - MP = MatrixPool(name='N2O4_MMH')

    #. Axis objects are added by name and interpolation transform (used to linearize interpolation)
        - epsAxis = Axis({'name':'eps', 'valueL':[10., 20., 30., 40., 50.], 'units':'', 'transform':'log10'})
        - pcAxis = Axis({'name':'pc', 'valueL':[100.,200.,300,400], 'units':'psia', 'transform':'log10'})
        - mrAxis = Axis({'name':'mr', 'valueL':[1,2,3], 'units':'', 'transform':''})

    #. Matrix objects added by name 
        - M = MP.add_matrix( name='cea_isp', units='sec', axisNameL=['eps','pc','mr'] )

    #. Find interpolated minimum or maximum
        - interpD, max_val = M.solve_interp_max( order=3, method='TNC', tol=1.0E-8)
            - where interpD and max_val look something like:
            - interpD = {'pc': 225.00641803120988, 'eps': 34.991495018803455, 'mr': 1.7499612975876655}
            - max_val = -0.000155216246295

    #. Disk-based persistence
        - Save to pickle or hdf5 file
            - MP.save_to_pickle() # saves MP to "N2O4_MMH_matrix.pool"

    #. Built-in statistics (standard deviation, median, mean/average, sum, minimum, maximum
        - M.get_range()
        - M.get_ave()
        - M.get_mean()
        - M.get_std()
        - M.get_median()

    #. Interpolation on axes with named values
        - interp_val = M.interp(order=2, pc=100, eps=20, mr=2.0)
        - Uses transformed axes to help linearize interpolation

    #. Iterate over matrix
        - for indeces,D,val in M.full_iter_items():
            - gives something like:
            - (0, 0, 0) {'pc': 100.0, 'eps': 10.0, 'mr': 1.0} 111.0
            - (0, 0, 1) {'pc': 100.0, 'eps': 10.0, 'mr': 2.0} 112.0
            - (0, 0, 2) {'pc': 100.0, 'eps': 10.0, 'mr': 3.0} 113.0
            - ...



