This is a pre-release version (2.5.0.dev0+git20251130.2de293a). Go to latest (2.4.4)
{ } Raw JSON

bundles / numpy 2.5.0.dev0+git20251130.2de293a / numpy / polynomial / polynomial / polyvander2d

function

numpy.polynomial.polynomial:polyvander2d

source: build-install/usr/lib/python3.14/site-packages/numpy/polynomial/polynomial.py :1141

Signature

def   polyvander2d ( x y deg )

Summary

Pseudo-Vandermonde matrix of given degrees.

Extended Summary

Returns the pseudo-Vandermonde matrix of degrees deg and sample points (x, y). The pseudo-Vandermonde matrix is defined by

where 0 <= i <= deg[0] and 0 <= j <= deg[1]. The leading indices of V index the points (x, y) and the last index encodes the powers of x and y.

If V = polyvander2d(x, y, [xdeg, ydeg]), then the columns of V correspond to the elements of a 2-D coefficient array c of shape (xdeg + 1, ydeg + 1) in the order

and np.dot(V, c.flat) and polyval2d(x, y, c) will be the same up to roundoff. This equivalence is useful both for least squares fitting and for the evaluation of a large number of 2-D polynomials of the 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 . The dtype will be the same as the converted x and y.

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
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
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)

See also

polyval2d
polyval3d
polyvander
polyvander3d

Aliases

  • numpy.polynomial.polynomial.polyvander2d