U
    q±Ëh0  ã                   @  s4   d dl mZ d dlZd dlmZ G dd„ deƒZdS )é    )ÚannotationsN)ÚOpRunAiOnnxMlc                   @  s   e Zd Zddd„ZdS )ÚImputerNc           
      C  s^  |d k	rt |ƒdkr|}|}n&|d k	r<t |ƒdkr<|}|}ntdƒ‚t|tƒrXt |¡}t |jƒdkrvtd|j› ƒ‚|jd |jd dfkr®td|jd › d|jd › ƒ‚| ¡ }t 	|¡rt
|jd ƒD ]:}|t||jd d ƒ }	|	|t 	|d d …|f ¡|f< qÐnJt
|jd ƒD ]:}|t||jd d ƒ }	|	||d d …|f |k|f< q|fS )Nr   zMissing are not defined.é   z x must be a matrix but shape is é   zDimension mismatch z != )ÚlenÚ
ValueErrorÚ
isinstanceÚlistÚnpÚarrayÚshapeÚ	TypeErrorÚcopyÚisnanÚrangeÚmin)
ÚselfÚxZimputed_value_floatsZimputed_value_int64sZreplaced_value_floatZreplaced_value_int64ÚvaluesÚreplaceÚiÚval© r   úJ/tmp/pip-unpacked-wheel-xnis5xre/onnx/reference/ops/aionnxml/op_imputer.pyÚ_run   s0    

ÿ" zImputer._run)NNNN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s
       úr   )Ú
__future__r   Znumpyr   Z,onnx.reference.ops.aionnxml._op_run_aionnxmlr   r   r   r   r   r   Ú<module>   s   