Source code for GlobalUtils

#------------------------------------------------------------------------

"""
:py:class:`GlobalUtils` contains global utilities
=================================================

This software was developed for the SIT project.
If you use all or part of it, please give an appropriate acknowledgment.

Author Mikhail Dubrovin
"""

#--------------------------------

import numpy as np

#------------------------------

def print_ndarr(nda, name='', first=0, last=5) :
    if nda is None : print '%s: %s' % (name, nda)
    elif isinstance(nda, tuple) : print_ndarr(np.array(nda), 'print_ndarr: ndarray from tuple: %s' % name)
    elif isinstance(nda, list)  : print_ndarr(np.array(nda), 'print_ndarr: ndarray from list: %s' % name)
    elif not isinstance(nda, np.ndarray) :
                     print '%s: %s' % (name, type(nda))
    else           : print '%s:  shape:%s  size:%d  dtype:%s %s...' % \
         (name, str(nda.shape), nda.size, nda.dtype, nda.flatten()[first:last])

#------------------------------

[docs]def divide_protected(num, den, vsub_zero=0) : """Returns result of devision of numpy arrays num/den with substitution of value vsub_zero for zero den elements. """ pro_num = np.select((den!=0,), (num,), default=vsub_zero) pro_den = np.select((den!=0,), (den,), default=1) return pro_num / pro_den
#------------------------------