%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/__pycache__/utils.cpython-37.pyc

B

�9�`��@stddlmZmZmZddlZddlZddlZddlZddlZddl	m
Z
mZmZddl
mZmZmZddlZddlmZmZdddd	d
ddd
ddddgZdd�Zdd�ZGdd�de�Zdd	�Zdd�Zdd�Zd3dd�Zdd�Zda da!d4dd �Z"ej#fd!d"�Z$dd#ej#dfd$d�Z%ej#fd%d
�Z&ia'e�(d&ej)�Z*d5d)d�Z+d*d+�Z,d,d-�Z-Gd.d/�d/e�Z.d0d�Z/d1d2�Z0dS)6�)�division�absolute_import�print_functionN)�issubclass_�issubsctype�
issubdtype)�ndarray�ufunc�asarray)�
getargspec�
formatargspecrrr�	deprecate�deprecate_with_doc�get_include�info�source�who�lookfor�byte_bounds�	safe_evalcCsVddl}|jdkr.tj�tj�|j�dd�}n$ddlm}tj�tj�|j�d�}|S)a�
    Return the directory that contains the NumPy \*.h header files.

    Extension modules that need to compile against NumPy should use this
    function to locate the appropriate include directory.

    Notes
    -----
    When using ``distutils``, for example in ``setup.py``.
    ::

        import numpy as np
        ...
        Extension('extension_name', ...
                include_dirs=[np.get_include()])
        ...

    rN�coreZinclude)	�numpyZshow_config�os�path�join�dirname�__file__�
numpy.corer)r�dr�r�B/opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/utils.pyrs
cCs
||_|S)N)�__name__)�func�namerrr �_set_function_name4sr$c@s"eZdZdZddd�Zdd�ZdS)�
_Deprecatez�
    Decorator class to deprecate old functions.

    Refer to `deprecate` for details.

    See Also
    --------
    deprecate

    NcCs||_||_||_dS)N)�old_name�new_name�message)�selfr&r'r(rrr �__init__Esz_Deprecate.__init__c
s�|j}|j}|j}ddl�|dkrHy
�j}Wntk
rF�j}YnX|dkrZd|�nd||f�|dk	rz�d|7����fdd�}t||�}�j}|dkr��}nd��|g�}||_y
�j	}	Wntk
r�YnX|j	�
|	�|S)	z:
        Decorator call.  Refer to ``decorate``.

        rNz`%s` is deprecated!z%`%s` is deprecated, use `%s` instead!�
cs�j�tdd��||�S)z1`arrayrange` is deprecated, use `arange` instead!�)�
stacklevel)�warn�DeprecationWarning)�args�kwds)�depdocr"�warningsrr �newfuncbsz$_Deprecate.__call__.<locals>.newfuncz

)r&r'r(r3r!�AttributeErrorr$�__doc__r�__dict__�update)
r)r"r0�kwargsr&r'r(r4�docrr)r2r"r3r �__call__Js8




z_Deprecate.__call__)NNN)r!�
__module__�__qualname__r6r*r;rrrr r%9s

r%cOs`|rR|d}|dd�}d|kr.|�d�|d<d|krD|�d�|d<t||�|�St||�SdS)a
    Issues a DeprecationWarning, adds warning to `old_name`'s
    docstring, rebinds ``old_name.__name__`` and returns the new
    function object.

    This function may also be used as a decorator.

    Parameters
    ----------
    func : function
        The function to be deprecated.
    old_name : str, optional
        The name of the function to be deprecated. Default is None, in
        which case the name of `func` is used.
    new_name : str, optional
        The new name for the function. Default is None, in which case the
        deprecation message is that `old_name` is deprecated. If given, the
        deprecation message is that `old_name` is deprecated and `new_name`
        should be used instead.
    message : str, optional
        Additional explanation of the deprecation.  Displayed in the
        docstring after the warning.

    Returns
    -------
    old_func : function
        The deprecated function.

    Examples
    --------
    Note that ``olduint`` returns a value after printing Deprecation
    Warning:

    >>> olduint = np.deprecate(np.uint)
    >>> olduint(6)
    /usr/lib/python2.5/site-packages/numpy/lib/utils.py:114:
    DeprecationWarning: uint32 is deprecated
      warnings.warn(str1, DeprecationWarning, stacklevel=2)
    6

    r�NZnewnamer'Zoldnamer&)�popr%)r0r9�fnrrr r
vs.cCs
t|d�S)N)r()r%)�msgrrr �<lambda>��rBc
Cs�|j}|dd}|d}|d}t|�jj}|}}|dkrN||j|7}nJx@t||�D]2\}}	|	dkr|||d|	7}qZ||d|	7}qZW||7}||fS)a1
    Returns pointers to the end-points of an array.

    Parameters
    ----------
    a : ndarray
        Input array. It must conform to the Python-side of the array
        interface.

    Returns
    -------
    (low, high) : tuple of 2 integers
        The first integer is the first byte of the array, the second
        integer is just past the last byte of the array.  If `a` is not
        contiguous it will not use every byte between the (`low`, `high`)
        values.

    Examples
    --------
    >>> I = np.eye(2, dtype='f'); I.dtype
    dtype('float32')
    >>> low, high = np.byte_bounds(I)
    >>> high - low == I.size*I.itemsize
    True
    >>> I = np.eye(2, dtype='G'); I.dtype
    dtype('complex192')
    >>> low, high = np.byte_bounds(I)
    >>> high - low == I.size*I.itemsize
    True

    �datar�strides�shapeNr>)Z__array_interface__r
�dtype�itemsize�size�zip)
�aZaiZa_dataZastridesZashapeZbytes_aZa_lowZa_highrFZstriderrr r�s c
CsP|dkrt��j}|j}g}i}x�|��D]�}t||t�r*||}t|�}||��krn|d||}d}n|||<|}d}d�t	t
|j��}	t
|j�}
|�
||	|
|jj|g�q*Wd}d}d}
d}x�tt|��D]|}||}|t|d�kr�t|d�}|t|d�k�rt|d�}|
t|d�k�r8t|d�}
|dr�|t|d�7}q�Wt|�dk�r�td|�}td|�}td|
�}d	|d
|d
|d
f}t|ddt|�d
d�x�tt|��D]t}||}td|dd
|t|d�d|dd
|t|d�d
|dd
|t|d�d
|df��q�Wtd|�dS)a%
    Print the NumPy arrays in the given dictionary.

    If there is no dictionary passed in or `vardict` is None then returns
    NumPy arrays in the globals() dictionary (all NumPy arrays in the
    namespace).

    Parameters
    ----------
    vardict : dict, optional
        A dictionary possibly containing ndarrays.  Default is globals().

    Returns
    -------
    out : None
        Returns 'None'.

    Notes
    -----
    Prints out the name, shape, bytes and type of all of the ndarrays
    present in `vardict`.

    Examples
    --------
    >>> a = np.arange(10)
    >>> b = np.ones(20)
    >>> np.who()
    Name            Shape            Bytes            Type
    ===========================================================
    a               10               40               int32
    b               20               160              float64
    Upper bound on total bytes  =       200

    >>> d = {'x': np.arange(2.0), 'y': np.arange(3.0), 'txt': 'Some str',
    ... 'idx':5}
    >>> np.who(d)
    Name            Shape            Bytes            Type
    ===========================================================
    y               3                24               float64
    x               2                16               float64
    Upper bound on total bytes  =       40

    Nz (%s)rr>z x r,��
zName %s Shape %s Bytes %s Type� r+�=�z%s %s %s %s %s %s %s�z'
Upper bound on total bytes  =       %d)�sys�	_getframe�f_back�	f_globals�keys�
isinstancer�idr�map�strrF�nbytes�appendrGr#�range�len�int�max�print)Zvardict�frameZsta�cacher#�varZidv�namestrZoriginalZshapestrZbytestrZmaxnameZmaxshapeZmaxbyteZ
totalbytes�k�valZsp1Zsp2Zsp3Zprvalrrr r�s^,




  c
Cs�t|�}|}|}d}|�|�}xp|D]h}||kr6d}	n|}	|t|�t|	�}||kr�|dt|�}|dd|d|}q$||	|}q$W|S)Nz, �r>z,
rNr,)r^�split)
r#�	arguments�widthZ
firstwidthrfZnewstrZsepstr�arglistZargumentZaddstrrrr �_split_line\s

rmrcCs�t|t�t�g�}|j|ji}|jg}|jg}xvt|�dkr>P|�d�}xX|��D]L}t||t	j
�rR||j}||krR||j}|�|�|�|�|||<qRWq0W||fS)Nr)�
__import__�globals�localsr!r7r^r?rVrW�types�
ModuleTyper\)�moduleZthedictZdictlistZ
totraverseZthisdict�x�modnameZmoddictrrr �
_makenamedictts"




rvc
Csxd}d}dd�}t|dt|��}t|d|�}|j}|jj}td||d�td|j|d�td	||d�td
|j|d�td||jj	�|d�td||jj
�|d�td
|jj|d�tdt|j
jj�|f|d�tdd|d�|dk�rtd|tj|f|d�d}	nH|dk�r2td||f|d�tjdk}	ntd||f|d�tjdk}	td||	�|d�td|j|d�dS)aOProvide information about ndarray obj.

    Parameters
    ----------
    obj : ndarray
        Must be ndarray, not checked.
    output
        Where printed output goes.

    Notes
    -----
    Copied over from the numarray module prior to its removal.
    Adapted somewhat as only numpy is an option now.

    Called by info.

    rhcSs|S)Nr)rtrrr rB�rCz_info.<locals>.<lambda>�	__class__r!zclass: )�filezshape: z	strides: z
itemsize: z	aligned: zcontiguous: z	fortran: zdata pointer: %s%szbyteorder: rN)�endrx)�|rOz%s%s%sF�>z%sbig%sZbigz
%slittle%s�littlez
byteswap: ztype: %sN)�getattr�typerErG�	byteorderrarFrH�flagsZaligned�
contiguousZfortran�hexZctypesZ_as_parameter_�valuerR)
�obj�outputZextraZticZbp�clsZnmrEZendianZbyteswaprrr �_info�s8


r��Lc	Csbddl}ddl}t|d�s$t|d�r,|j}nt|d�r<|j}|dkrPtt��nt|t�rjt||d��n�t|t	��rTt
dkr�t|�\a
ad}g}x�tD]�}ylt
||}	t
|	�|kr�td||d�n6|�t
|	��td	||d�t|	�td
||d�|d7}Wq�tk
�rYq�Xq�W|dk�r@td||d�ntd
||d��n
|�|��r�|j}
tt|��}t|
|�|k�r�t|
||�}n|
|}td|d|d�t|�|�|d��n�|�|��rP|j}
d}yZt|d��r2tt|jj��}|�d�}
t|
�dk�r2d|
d|
d<d�|
dd��}WnYnXt|
|�|k�rbt|
||�}n|
|}td|d|d�|�|�}|dk�r�t|d��r�t|�|j�|d�nt|�|�|d�|�|�}|gk�r^td|d�xd|D]\}|ddk�r�q�t||d�}|dk	�r2|�|�|��p*d�\}}td||f|d��q�W�nt j!ddk�r�t|t"j#��r�td|j$j|d�t|d�t|d��r|tt|j%j��}|�d�}
t|
�dk�r�d|
d|
d<d�|
dd��}nd}t|d��r�d|j&}
nd}
t|
|�|k�r"t|
||�}n|
|}td|d|d�|�|j%�}|dk	�rht|�|j%�|d�t|�|�|d�nt|�|�|d�n�|�'|��r@|j}
tt|j��}|�d�}
t|
�dk�r�d|
d|
d<d�|
dd��}nd}t|
|�|k�rt|
||�}n|
|}td|d|d�t|�|�|d�nt|d��r^t|�|�|d�dS)a�
    Get help information for a function, class, or module.

    Parameters
    ----------
    object : object or str, optional
        Input object or name to get information about. If `object` is a
        numpy object, its docstring is given. If it is a string, available
        modules are searched for matching objects.  If None, information
        about `info` itself is returned.
    maxwidth : int, optional
        Printing width.
    output : file like object, optional
        File like object that the output is written to, default is
        ``stdout``.  The object has to be opened in 'w' or 'a' mode.
    toplevel : str, optional
        Start search at this level.

    See Also
    --------
    source, lookfor

    Notes
    -----
    When used interactively with an object, ``np.info(obj)`` is equivalent
    to ``help(obj)`` on the Python prompt or ``obj?`` on the IPython
    prompt.

    Examples
    --------
    >>> np.info(np.polyval) # doctest: +SKIP
       polyval(p, x)
         Evaluate the polynomial p at x.
         ...

    When using a string for `object` it is possible to get multiple results.

    >>> np.info('fft') # doctest: +SKIP
         *** Found in numpy ***
    Core FFT routines
    ...
         *** Found in numpy.fft ***
     fft(a, n=None, axis=-1)
    ...
         *** Repeat reference found in numpy.fft.fftpack ***
         *** Total of 3 references found. ***

    rNZ_ppimport_importer�_ppimport_module�_ppimport_attr)r�z+
     *** Repeat reference found in %s *** )rxz     *** Found in %s ***�-r>zHelp for %s not found.z+
     *** Total of %d references found. ***rNr+z()r*z, �(z

Methods:
�_�Nonez  %s  --  %srQzInstance of class: r;r#z%sz<name>r6)(�pydoc�inspect�hasattrr�r�rrWrr�rZ�	_namedictrv�	_dictlistrXrar\�KeyErrorZ
isfunctionr!rrr^rm�getdoc�isclassr*�__func__rirZ
allmethodsr}ZsplitdocrR�version_inforqZInstanceTyperwr;r#Zismethod)�objectZmaxwidthr�Ztoplevelr�r�ZnumfoundZobjlistrer�r#rjZargstrrlZdoc1�methods�methZthisobjZmethstr�otherr:rrr r�s�3


















cCsRddl}y,td|�|�|d�t|�|�|d�Wntd|d�YnXdS)a�
    Print or write to a file the source code for a NumPy object.

    The source code is only returned for objects written in Python. Many
    functions and classes are defined in C and will therefore not return
    useful information.

    Parameters
    ----------
    object : numpy object
        Input object. This can be any object (function, class, module,
        ...).
    output : file object, optional
        If `output` not supplied then source code is printed to screen
        (sys.stdout).  File object must be created with either write 'w' or
        append 'a' modes.

    See Also
    --------
    lookfor, info

    Examples
    --------
    >>> np.source(np.interp)                        #doctest: +SKIP
    In file: /usr/lib/python2.6/dist-packages/numpy/lib/function_base.py
    def interp(x, xp, fp, left=None, right=None):
        """.... (full docstring printed)"""
        if isinstance(x, (float, int, number)):
            return compiled_interp([x], xp, fp, left, right).item()
        else:
            return compiled_interp(x, xp, fp, left, right)

    The source code is only returned for objects written in Python.

    >>> np.source(np.array)                         #doctest: +SKIP
    Not available for this object.

    rNzIn file: %s
)rxzNot available for this object.)r�raZ
getsourcefileZ	getsource)r�r�r�rrr r�s(z[a-z0-9_]+\(.*[,=].*\)TFc	s�ddl}t|||��g}t|�������s0dSxZ���D]N\}\}}	}
|	dkrRq:d}|��}x�D]}
|
|krdd}PqdW|r:|�|�q:Wddddd����fd	d
����fdd�}|j|d
�dd���}|dt	|�g}x�|ddd�D]�}�|\}}	}dd�|�
��d�D�}y(|d�
�}t�|��r@|d�
�}Wnt
k
�r\d}YnX|�d||f�q�W|�s�|�d�|dk	�r�|�d�|��n4t	|�dk�r�|��}|d�|��ntd�|��dS)a�
    Do a keyword search on docstrings.

    A list of of objects that matched the search is displayed,
    sorted by relevance. All given keywords need to be found in the
    docstring for it to be returned as a result, but the order does
    not matter.

    Parameters
    ----------
    what : str
        String containing words to look for.
    module : str or list, optional
        Name of module(s) whose docstrings to go through.
    import_modules : bool, optional
        Whether to import sub-modules in packages. Default is True.
    regenerate : bool, optional
        Whether to re-generate the docstring cache. Default is False.
    output : file-like, optional
        File-like object to write the output to. If omitted, use a pager.

    See Also
    --------
    source, info

    Notes
    -----
    Relevance is determined only roughly, by checking if the keywords occur
    in the function name, at the start of a docstring, etc.

    Examples
    --------
    >>> np.lookfor('binary representation')
    Search results for 'binary representation'
    ------------------------------------------
    numpy.binary_repr
        Return the binary representation of the input number as a string.
    numpy.core.setup_common.long_double_representation
        Given a binary dump as given by GNU od -b, look for long double
    numpy.base_repr
        Return a string representation of a number in the given base system.
    ...

    rN)rsr�TFi�i���)r"�classrsr�cs�d}d�|�����d�dd���|t�fdd��D��7}|t�fdd��D��7}|t��d7}|��|d�7}|��d	�d
7}|t|dd�7}|S)
Nrr+rQcsg|]}|�krd�qS)��r)�.0�w)�	first_docrr �
<listcomp>sz.lookfor.<locals>.relevance.<locals>.<listcomp>csg|]}|�krd�qS)�r)r�r�)r#rr r�srPi����.rM�di����)	r�lower�stripri�sumr^�get�countr`)r#Zdocstr�kind�index�r)�kind_relevance�whats)r�r#r �	relevances zlookfor.<locals>.relevancecs�|f�|��S)Nr)rK)rcr�rr �relevance_valuesz lookfor.<locals>.relevance_value)�keyzSearch results for '%s'rNr����cSsg|]}|��r|���qSr)r�)r��linerrr r�)szlookfor.<locals>.<listcomp>r+r>rhz	%s
    %szNothing found.rM)r��_lookfor_generate_cacherZr�ri�itemsr\�sortrr^r��_function_signature_re�search�
IndexError�writeZgetpagerra)Zwhatrs�import_modules�
regenerater�r��foundr#Z	docstringr�r��okr:r�r��sZ	help_textZixZdoclinesr�Zpagerr)rcr�r�r�r r�sT.




c
Cs�ddl}tjddkr$ddlm}nddlm}|dkr<d}t|t�rtyt|�Wntk
rfiSXtj	|}n<t|t
�s�t|t�r�i}x|D]}|�t
|||��q�W|St|�tkr�|s�tt|�Si}|tt|�<i}d}|j|fg}	�x�|	�r�|	�d�\}
}t|�|k�rq�d|t|�<|d7}d}|�|��rLd	}y
|j}
Wntk
�rdd}
YnX|�rlt|d
��rlx�|jD]�}x�t�|�D]�}tj�||�}tj�||d�}tj�|��r�|�d��r�|dd
�}ntj�|��r�|}n�q�|dk�r�q�yDtj}tj}z$|�t_|�t_td|
|f�Wd|t_|t_XWntk
�r^�w�YnX�q�W�q�Wx�t |�D]�\}}y$t!|dd|
|f�}t!|dd�}Wn&t"k
�r�d|
|f}d}YnXd|k�r�|�r�d||f}|�#|
d��s
t|t$��rvn�qvn$|�|��s.|
dk�s.||
k�s.�qv|	�%d|
|f|f��qvWnP|�&|��r�d}x>t |�D] \}}|	�%d|
|f|f��qfWnt|d��r�d}y|�'|�}Wnt"k
�r�d}YnX|dk	r�|||f||
<q�W|S)a�
    Generate docstring cache for given module.

    Parameters
    ----------
    module : str, None, module
        Module for which to generate docstring cache
    import_modules : bool
        Whether to import sub-modules in packages.
    regenerate : bool
        Re-generate the docstring cache

    Returns
    -------
    cache : dict {obj_full_name: (docstring, kind, index), ...}
        Docstring cache for the module, either cached one (regenerate=False)
        or newly generated.

    rNrQ)�StringIOrTr>r�rs�__path__z__init__.pyz.py���r*z%s.%sr!r<r�r�r;r")(r�rRr��ior�rWrZrn�ImportError�modules�list�tupler8r�rX�_lookfor_cachesr!r?Zismodule�__all__r5r�r�r�listdirrr�isfile�endswith�stdout�stderr�
BaseException�_getmembersr}�	NameError�
startswithr	r\r�r�)rsr�r�r�r�rc�mod�seenr��stackr#�itemr�Z_allZpthZmod_pathZthis_pyZinit_pyZ	to_importZ
old_stdoutZ
old_stderr�n�vZ	item_nameZmod_namer:rrr r�As�







 
r�csFddl}y|���}Wn*tk
r@�fdd�t��D�}YnX|S)Nrcs$g|]}t�|�r|t�|�f�qSr)r�r})r�rt)r�rr r��sz_getmembers.<locals>.<listcomp>)r�Z
getmembers�	Exception�dir)r�r��membersr)r�r r��sr�c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�SafeEvalz�
    Object to evaluate constant string expressions.

    This includes strings with lists, dicts and tuples using the abstract
    syntax tree created by ``compiler.parse``.

    .. deprecated:: 1.10.0

    See Also
    --------
    safe_eval

    cCstjdtdd�dS)Nz3SafeEval is deprecated in 1.10 and will be removed.r,)r-)r3r.r/)r)rrr r*�szSafeEval.__init__cCs"|j}t|d|j|j�}||�S)N�visit)rwr}r!�default)r)�noder�r�rrr r��szSafeEval.visitcCstd|j��dS)Nz Unsupported source construct: %s)�SyntaxErrorrw)r)r�rrr r��szSafeEval.defaultcCs|�|j�S)N)r�Zbody)r)r�rrr �visitExpressionszSafeEval.visitExpressioncCs|jS)N)r�)r)r�rrr �visitNumszSafeEval.visitNumcCs|jS)N)r�)r)r�rrr �visitStrszSafeEval.visitStrcCs|jS)N)r�)r)r�rrr �
visitBytes
szSafeEval.visitBytescs t�fdd�t|j|j�D��S)Ncs$g|]\}}��|���|�f�qSr)r�)r�rfr�)r)rr r�sz&SafeEval.visitDict.<locals>.<listcomp>)�dictrJrV�values)r)r��kwr)r)r �	visitDict
szSafeEval.visitDictcst�fdd�|jD��S)Ncsg|]}��|��qSr)r�)r��i)r)rr r�sz'SafeEval.visitTuple.<locals>.<listcomp>)r��elts)r)r�r)r)r �
visitTupleszSafeEval.visitTuplecs�fdd�|jD�S)Ncsg|]}��|��qSr)r�)r�r�)r)rr r�sz&SafeEval.visitList.<locals>.<listcomp>)r�)r)r�r)r)r �	visitListszSafeEval.visitListcCsRddl}t|j|j�r$|�|j�
St|j|j�r@|�|j�Std|j��dS)NrzUnknown unary op: %r)�astrW�opZUAddr�ZoperandZUSubr�)r)r�r�rrr �visitUnaryOpszSafeEval.visitUnaryOpcCs<|jdkrdS|jdkrdS|jdkr*dStd|j��dS)N�FalseF�TrueTr�zUnknown name: %s)rXr�)r)r�rrr �	visitName s


zSafeEval.visitNamecCs|jS)N)r�)r)r�rrr �visitNameConstant*szSafeEval.visitNameConstantN)r!r<r=r6r*r�r�r�r�r�r�r�r�r�r�r�r�rrrr r��s
	
r�cCsddl}|�|�S)a�
    Protected string evaluation.

    Evaluate a string containing a Python literal expression without
    allowing the execution of arbitrary non-literal code.

    Parameters
    ----------
    source : str
        The string to evaluate.

    Returns
    -------
    obj : object
       The result of evaluating `source`.

    Raises
    ------
    SyntaxError
        If the code has invalid Python syntax, or if it contains
        non-literal code.

    Examples
    --------
    >>> np.safe_eval('1')
    1
    >>> np.safe_eval('[1, 2, 3]')
    [1, 2, 3]
    >>> np.safe_eval('{"foo": ("bar", 10.0)}')
    {'foo': ('bar', 10.0)}

    >>> np.safe_eval('import os')
    Traceback (most recent call last):
      ...
    SyntaxError: invalid syntax

    >>> np.safe_eval('open("/home/user/.ssh/id_dsa").read()')
    Traceback (most recent call last):
      ...
    SyntaxError: Unsupported source construct: compiler.ast.CallFunc

    rN)r�Zliteral_eval)rr�rrr r.s,cCs�|jdkr|St�|||j�}t�|d�}tj�|�rB|�d�}|jdkr�|dkr�tj	dt
dd�|dk	r�|j�tj
�|d	<|}q�|j�tj
�}n>t�|���dkr�tj	d
dt�|���t
dd�tj
||<|S)aj
    Utility function to check median result from data for NaN values at the end
    and return NaN in that case. Input result can also be a MaskedArray.

    Parameters
    ----------
    data : array
        Input data to median function
    result : Array or MaskedArray
        Result of median function
    axis : {int, sequence of int, None}, optional
        Axis or axes along which the median was computed.
    out : ndarray, optional
        Output array in which to place the result.
    Returns
    -------
    median : scalar or ndarray
        Median or NaN in axes which contained NaN in the input.
    r).r�FTz#Invalid value encountered in medianrQ)r-N.z'Invalid value encountered in median forz %d results)rI�npZrollaxis�ndimZisnanZmaZ
isMaskedArrayZfilledr3r.�RuntimeWarningrGr~�nanZ
count_nonzeroZravel)rD�resultZaxis�outr�rrr �_median_nancheck_s(





r�)N)r)NTFN)1Z
__future__rrrrrRrq�rer3Znumpy.core.numerictypesrrrrrr	r
rr�Znumpy.compatrrr�rr$r�r%r
rrrrmr�r�rvr�r�rrr��compile�Ir�rr�r�r�rr�rrrr �<module>sJ

==9
i
3N3

I1

Zerion Mini Shell 1.0