Find the coefficients of a polynomial with the given sequence of roots.
Returns the coefficients of the polynomial whose leading coefficient is one for the given sequence of zeros (multiple roots must be included in the sequence as many times as their multiplicity; see Examples). A square matrix (or array, which will be treated as a matrix) can also be given, in which case the coefficients of the characteristic polynomial of the matrix are returned.
Parameters:  seq_of_zeros : array_like, shape (N,) or (N, N)


Returns:  c : ndarray

Raises:  ValueError :

See also
Notes
Specifying the roots of a polynomial still leaves one degree of freedom, typically represented by an undetermined leading coefficient. [R64] In the case of this function, that coefficient  the first one in the returned array  is always taken as one. (If for some reason you have one other point, the only automatic way presently to leverage that information is to use polyfit.)
The characteristic polynomial, , of an nbyn matrix A is given by
,
where I is the nbyn identity matrix. [R65]
References
[R64]  (1, 2) M. Sullivan and M. Sullivan, III, “Algebra and Trignometry, Enhanced With Graphing Utilities,” PrenticeHall, pg. 318, 1996. 
[R65]  (1, 2) G. Strang, “Linear Algebra and Its Applications, 2nd Edition,” Academic Press, pg. 182, 1980. 
Examples
Given a sequence of a polynomial’s zeros:
>>> np.poly((0, 0, 0)) # Multiple root example
array([1, 0, 0, 0]) # i.e., z**3 + 0*z**2 + 0*z + 0
>>> np.poly((1./2, 0, 1./2))
array([ 1. , 0. , 0.25, 0. ]) # z**3  z/4
>>> np.poly((np.random.random(1.)[0], 0, np.random.random(1.)[0]))
array([ 1. , 0.77086955, 0.08618131, 0. ])
Given a square array object:
>>> P = np.array([[0, 1./3], [1./2, 0]])
>>> np.poly(P)
array([ 1. , 0. , 0.16666667])
Or a square matrix object:
>>> np.poly(np.matrix(P))
array([ 1. , 0. , 0.16666667])
Note how in all cases the leading coefficient is always 1.