he same degrees and sample points. Parameters ---------- x, y : array_like Arrays of point coordinates, all of the same shape. The dtypes will be converted to either float64 or complex128 depending on whether any of the elements are complex. Scalars are converted to 1-D arrays. deg : list of ints List of maximum degrees of the form [x_deg, y_deg]. Returns ------- vander2d : ndarray The shape of the returned matrix is ``x.shape + (order,)``, where :math:`order = (deg[0]+1)*(deg([1]+1)`. The dtype will be the same as the converted `x` and `y`. See Also -------- polyvander, polyvander3d, polyval2d, polyval3d Examples -------- >>> import numpy as np The 2-D pseudo-Vandermonde matrix of degree ``[1, 2]`` and sample points ``x = [-1, 2]`` and ``y = [1, 3]`` is as follows: >>> from numpy.polynomial import polynomial as P >>> x = np.array([-1, 2]) >>> y = np.array([1, 3]) >>> m, n = 1, 2 >>> deg = np.array([m, n]) >>> V = P.polyvander2d(x=x, y=y, deg=deg) >>> V array([[ 1., 1., 1., -1., -1., -1.], [ 1., 3., 9., 2., 6., 18.]]) We can verify the columns for any ``0 <= i <= m`` and ``0 <= j <= n``: >>> i, j = 0, 1 >>> V[:, (deg[1]+1)*i + j] == x**i * y**j array([ True, True]) The (1D) Vandermonde matrix of sample points ``x`` and degree ``m`` is a special case of the (2D) pseudo-Vandermonde matrix with ``y`` points all zero and degree ``[m, 0]``. >>> P.polyvander2d(x=x, y=0*x, deg=(m, 0)) == P.polyvander(x=x, deg=m) array([[ True, True], [ True, True]]) ©