Функция np.vander возвращает массив, где первый столбец равен x ^ (N-1), второй x ^ (N-2) и так далее. Посмотрите этот пример:
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]])
В вашем коде N = order + 1 и X = np.linspace (-1, 1, len (y)). Вы также можете использовать «Увеличивание = Истина», где первый столбец равен x ^ (0), второй x ^ (1) и т. Д., А последний x ^ (N-1).