def __init__(self, *args, **kwords):
N = len(args)<EOL>if N == <NUM_LIT:2>:  <EOL><INDENT>self._num, self._den = normalize(*args)<EOL>self._update(N)<EOL>self.inputs = <NUM_LIT:1><EOL>if len(self.num.shape) > <NUM_LIT:1>:<EOL><INDENT>self.outputs = self.num.shape[<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>self.outputs = <NUM_LIT:1><EOL><DEDENT><DEDENT>elif N == <NUM_LIT:3>:      <EOL><INDENT>self._zeros, self._poles, self._gain = args<EOL>self._update(N)<EOL>self.zeros = numpy.asarray(self.zeros)<EOL>self.poles = numpy.asarray(self.poles)<EOL>self.inputs = <NUM_LIT:1><EOL>if len(self.zeros.shape) > <NUM_LIT:1>:<EOL><INDENT>self.outputs = self.zeros.shape[<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>self.outputs = <NUM_LIT:1><EOL><DEDENT><DEDENT>elif N == <NUM_LIT:4>:       <EOL><INDENT>self._A, self._B, self._C, self._D = abcd_normalize(*args)<EOL>self._update(N)<EOL>self.inputs = self.B.shape[-<NUM_LIT:1>]<EOL>self.outputs = self.C.shape[<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>
Initialize the LTI system using either:

    - (numerator, denominator)
    - (zeros, poles, gain)
    - (A, B, C, D) : state-space.