A Wrapper For Numpy Arrays Providing 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
- ...
M_Pool¶
Contents: