numpy.ma.vander#

ma.vander(x, n=None)[источник]#

Сгенерировать матрицу Вандермонда.

Столбцы выходной матрицы являются степенями входного вектора. Порядок степеней определяется увеличивая логический аргумент. В частности, когда увеличивая равно False, i-й выходной столбец — это входной вектор, возведённый поэлементно в степень N - i - 1. Такая матрица с геометрической прогрессией в каждой строке названа в честь Александра-Теофиля Вандермонда.

Параметры:
xarray_like

1-D входной массив.

Nint, необязательный

Количество столбцов в выводе. Если N не указан, возвращается квадратный массив (N = len(x)).

увеличиваяbool, необязательно

Порядок степеней столбцов. Если True, степени увеличиваются слева направо, если False (по умолчанию) они обратны.

Возвращает:
выходndarray

Матрица Вандермонда. Если увеличивая равно False, первый столбец x^(N-1), второй x^(N-2) и так далее. Если увеличивая равно True, столбцы x^0, x^1, ..., x^(N-1).

Смотрите также

polynomial.polynomial.polyvander

Примечания

Маскированные значения во входном массиве приводят к строкам из нулей.

Примеры

>>> import numpy as np
>>> x = np.array([1, 2, 3, 5])
>>> N = 3
>>> np.vander(x, N)
array([[ 1,  1,  1],
       [ 4,  2,  1],
       [ 9,  3,  1],
       [25,  5,  1]])
>>> np.column_stack([x**(N-1-i) for i in range(N)])
array([[ 1,  1,  1],
       [ 4,  2,  1],
       [ 9,  3,  1],
       [25,  5,  1]])
>>> x = np.array([1, 2, 3, 5])
>>> np.vander(x)
array([[  1,   1,   1,   1],
       [  8,   4,   2,   1],
       [ 27,   9,   3,   1],
       [125,  25,   5,   1]])
>>> np.vander(x, increasing=True)
array([[  1,   1,   1,   1],
       [  1,   2,   4,   8],
       [  1,   3,   9,  27],
       [  1,   5,  25, 125]])

Определитель квадратной матрицы Вандермонда равен произведению разностей между значениями входного вектора:

>>> np.linalg.det(np.vander(x))
48.000000000000043 # may vary
>>> (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1)
48