在机器学习中往往把向量转化成矩阵用numpy求解,这样速度很快。
reshape(-1,1)得到一个nX1的二维矩阵(Numpy自动推断出有多少行),通常用来把一维的向量转化正二维的矩阵以便各种机器学习框架处理
eg:
from sklearn.model_selection import train_test_split中的
train_X, test_X, train_y, test_y = train_test_split(x, y, test_size=0.25, random_state=0)的x,y必须是二维的,所以用reshape(-1,1)处理
import numpy as np from sklearn.model_selection import train_test_split np.random.seed(0) x = np.linspace(-10, 10, 1000) x = x.reshape(-1, 1) y = 0.85 * x - 0.72 #模拟误差(现实生活中的噪声)和服从正态分布(中心极限定理) #即生成一个形状是size,标准差是1.5的一个正态分布 e = np.random.normal(scale=1.5, size=x.shape) y += e train_X, test_X, train_y, test_y = train_test_split(x, y, test_size=0.25, random_state=0) 12345678910111213