Как создать эту матрицу в Python? - PullRequest
0 голосов
/ 19 октября 2018

Я новичок в python и некоторое время мучался, как закодировать эту матрицу.

x'=[x1,x2,x3,x4,...,xN]

x - транспонирование вышеуказанной матрицы.

Я хотел бы создать матрицу y со значениями

shown here

x должен быть вводом y, чтобы пользователи могли изменять значения x и k.

def(x,k) 

Как мне продолжить кодировать эту матрицу в Python?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вот один из способов написания функции.Пусть base_vector (ваш x) будет пустым массивом, и пусть max_power (ваш k) будет целым числом.

import numpy as np

def generate_poly_matrix(base_vector, max_power):
    poly_matrix = np.zeros((base_vector.size, max_power + 1))
    for (i, j), _ in np.ndenumerate(poly_matrix):
        poly_matrix[i, j] = base_vector[i]**j
    return poly_matrix

Вот другой способ, использующий другие методы.Неформальное тестирование показало, что они выполняются в одинаковое время.

def generate_poly_matrix2(base_vector, max_power):
    base_matrix = np.tile(base_vector, (max_power+1, 1)).T
    powers = np.arange(0, max_power+1)
    return np.power(base_matrix, powers)
0 голосов
/ 19 октября 2018

Использование может использовать следующую функцию.

def generate_poly_data(data,degree):
    first_row = np.ones((data.shape[0],1))

    poly_data = np.column_stack((first_row, data))
    for i in range(2,degree+1):
        poly_data = np.column_stack((poly_data,data**i))
    np.set_printoptions(suppress=True)
    return poly_data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...