我想在矩阵中添加一个额外的列,以便使用某些机器学习算法预测某些功能。
我的火车套装有8899行和11个尺寸。
我想要做的就是添加额外的维度import xlwt
wb = xlwt.Workbook()
sheet1 = wb.add_sheet('Sheet 1')
wb.save('self, example.xls')
(参见代码)。
但我收到了一个错误:
distance
only length-1 arrays can be converted to Python scalars
是temp_train_long/lat
(8899L,)
答案 0 :(得分:0)
查看concatenate
文档
连接((a1,a2,...),轴= 0)
该函数有2个参数。第一个是列表或元组,即要加入的数组。第二个是数字,表示轴。它返回一个新数组。它没有到位。
X_train = df_train.as_matrix()
所以这是2d(8899,n),n大于9.根据pd
文档,这是一个numpy array
而不是numpy matrix
(这很重要)
temp_train_long=(X_train[:,3] - X_train[:,7])**2#long
temp_train_lat = (X_train[:,4] - X_train[:,8])**2#lat
两个1d阵列(8899,)
distance = np.sqrt(temp_train_long + temp_train_lat)
另外(8899,)。 distance.T
什么都不做;这不是形状的改变
np.concatenate(X_train, distance.T)
你给它2个参数,一个是2d数组,另一个是axis
slow是1d数组。
你可能想要
new_train = np.concatenate((X_train, distance[:,None]), axis=1)
一个元组中的2个数组,轴是标量。 distance
数组已变为2d 1列数组。