B
    G0d**                 @   s  d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZ ejjZejjZejjZejjZejjZejjZe ej!e ej"e ej#e ej$iZ%e ej&e ej$kre%'e ej(e ej&i dddedfddZ)dddedfddZ*ddddedfddZ+ddddedfddZ,d3ddddZ-d4ddddZ.d5ddZ/dd Z0dd Z1ddd d!d"Z2d6dd#d$d%Z3d7ddd&d'Z4d8ddd(d)Z5d9ddd*d+Z6d:d,d-Z7d;d/d0Z8d<d1d2Z9dS )=zx
Array methods which are called by both the C-code for the method
and the Python code for the NumPy-namespace function

    N)nullcontext)
multiarray)umath)
asanyarray)numerictypes)_exceptions)_NoValue)pickle	os_fspathFTc             C   s   t | |d ||||S )N)umr_maximum)aaxisoutkeepdimsinitialwhere r   E/var/www/html/venv/lib/python3.7/site-packages/numpy/core/_methods.py_amax&   s    r   c             C   s   t | |d ||||S )N)umr_minimum)r   r   r   r   r   r   r   r   r   _amin*   s    r   c             C   s   t | ||||||S )N)umr_sum)r   r   dtyper   r   r   r   r   r   r   _sum.   s    r   c             C   s   t | ||||||S )N)umr_prod)r   r   r   r   r   r   r   r   r   r   _prod2   s    r   )r   c            C   s,   |dkrt | ||||S t | |||||dS )NT)r   )umr_any)r   r   r   r   r   r   r   r   r   _any6   s    r   c            C   s,   |dkrt | ||||S t | |||||dS )NT)r   )umr_all)r   r   r   r   r   r   r   r   r   _all<   s    r   c             C   s   |dkrb|d kr t t| j}nt|t s0|f}td}xL|D ]}|| jt|| j 9 }q@W n&ddl	m
} t||| j|tjd |}|S )NT   r   )broadcast_to)tuplerangendim
isinstancentZintpshapemuZnormalize_axis_indexZnumpy.lib.stride_tricksr!   r   )arrr   r   r   itemsZaxr!   r   r   r   _count_reduce_itemsB   s    


r+   c             C   s@   ddl m} || dkrdS y
t| S  tk
r:   dS X d S )Nr   )r$   F)Znumpy.core.fromnumericr$   umisnan	TypeError)r   r$   r   r   r   _clip_dep_is_scalar_nan[   s    
r/   c             C   s   t | tjr| jj S dS )NF)r%   r(   ndarrayr   Zisnative)r   r   r   r   _clip_dep_is_byte_swappede   s    
r1   )r   castingc         
   O   s   |d k	r| |||d|S y| |d|i|S  t jk
r~ } z0tjd|j|jtdd | ||dd|S d }~X Y nX d S )N)r   r2   r   zConverting the output of clip from {!r} to {!r} is deprecated. Pass `casting="unsafe"` explicitly to silence this warning, or correct the type of the variables.   )
stacklevelunsafe)r   Z_UFuncOutputCastingErrorwarningswarnformatZfrom_toDeprecationWarning)Zufuncr   r2   argskwargser   r   r   _clip_dep_invoke_with_castingj   s    
r>   )r2   c            K   s   |d kr|d krt dt| sjt|sjd}t|rBtd }d}t|rVtd}d}|rjtjdtdd |d krttj	| |f||d|S |d krttj
| |f||d|S ttj| ||f||d|S d S )	NzOne of max or min must be givenFinfTa  Passing `np.nan` to mean no clipping in np.clip has always been unreliable, and is now deprecated. In future, this will always return nan, like it already does when min or max are arrays that contain nan. To skip a bound, pass either None or an np.inf of an appropriate sign.r3   )r4   )r   r2   )
ValueErrorr1   r/   floatr6   r7   r:   r>   r,   minimummaximumZclip)r   minmaxr   r2   r<   Zusing_deprecated_nanr   r   r   _clip}   s.    
rF   c      
      C   s&  t | }d}t||||d}|dkr.|dkrNnt|dkd drNtjdtdd |d krt|jjt	j
t	jfrxtd	}nt|jjt	jrtd
}d}t||||||d}	t|	tjrtj|	||	ddd}	|r|d kr|j|	}	n>t|	dr|r|j|	| }	n|	j|	| }	n|	| }	|	S )NF)r   r   Tr   )r   zMean of empty slice.r3   )r4   f8Zf4)r   r5   )r   r2   subokr   )r   r+   r   r6   r7   RuntimeWarning
issubclassr   typer&   integerbool_r(   Zfloat16r   r%   r0   r,   true_dividehasattr)
r   r   r   r   r   r   r)   Zis_float16_resultrcountretr   r   r   _mean   s.    "
rR   c            C   s  t | }t||||d}|dkr*||krJnt||kd drJtjdtdd |d krrt|jjt	j
t	jfrrtd}t|||d|d}	|jdkr|}
n||	j}
t|	tjrtj|	|
|	d	d
d}	n|	j|	| }	t ||	 }t|jjt	jt	j
frtj|||d}nh|jtkrX|jt|j dfd}tj|||d tj|d |d |jdj}ntj|t||dj}t||||||d}t|| d}t|tjrtj|||d	d
d}n&t|dr|j|| }n|| }|S )N)r   r   T)r   z!Degrees of freedom <= 0 for slicer3   )r4   rG   r   r5   F)r   r2   rH   )r   )r3   )r   ).r   ).r    r   )r   r+   r   r6   r7   rI   rJ   r   rK   r&   rL   rM   r(   r   r$   Zreshaper'   r%   r0   r,   rN   Zfloatingmultiply_complex_to_floatviewaddreal	conjugaterC   rO   )r   r   r   r   ddofr   r   r)   rP   ZarrmeandivxZxvrQ   r   r   r   _var   s@    "


r\   c         	   C   s^   t | ||||||d}t|tjr2tj||d}n(t|drP|jt|}n
t|}|S )N)r   r   r   rY   r   r   )r   r   )	r\   r%   r(   r0   r,   sqrtrO   r   rK   )r   r   r   r   rY   r   r   rQ   r   r   r   _std  s    


r^   c          	   C   s&   t t| |d ||t| |d d ||S )N)r,   subtractr   r   )r   r   r   r   r   r   r   _ptp  s    r`   r3   c          	   C   sF   t |drt|}ntt|d}|}tj| ||d W d Q R X d S )Nwritewb)protocol)rO   r   openr
   r	   dump)selffilerc   ctxfr   r   r   _dump  s
    

rj   c             C   s   t j| |dS )N)rc   )r	   dumps)rf   rc   r   r   r   _dumps!  s    rl   )NNNF)NNNF)FT)NNN)NNNF)NNNr   F)NNNr   F)NNF)r3   )r3   ):__doc__r6   
contextlibr   Z
numpy.corer   r(   r   r,   Znumpy.core.multiarrayr   r   r&   r   Znumpy._globalsr   Znumpy.compatr	   r
   rC   reducer   rB   r   rV   r   rS   r   
logical_orr   logical_andr   r   ZcsingleZsingleZcdoubledoublerT   Z
longdoubleupdateZclongdoubler   r   r   r   r   r   r+   r/   r1   r>   rF   rR   r\   r^   r`   rj   rl   r   r   r   r   <module>   sV   

%!@

