这是编写函数的一种方法。让
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)