python中vstack_numpy vstack空初始化

我有vstacked图像数据,现在我想把它分成一个训练和测试集。

但是,如何初始化一个空的numpy数组以启动vstacking?在

我的简化代码如下:#k-fold the data

kf = cross_validation.KFold(n, n_folds=2)

fold = 0

for train_ind, test_ind in kf:

#Get the persons of k-fold

train_pers = unique[train_ind]

test_pers = unique[test_ind]

#Set train+test stack to empty

self.train_stack = type(self.pca_data[0])

self.test_stack = type(self.pca_data[0])

#For all test data

for data in range(len(self.pca_data)):

print(self.pca_pers[data])

if self.pca_pers[data] in train_pers:

#Add to train stack

self.train_stack = np.vstack((self.train_stack, self.pca_data[data]))

elif self.pca_pers[data] in test_pers:

#Add to test stack

self.test_stack = np.vstack((self.test_stack, self.pca_data[data]))

else:

#Something wrong

print(data)

sys.exit("Strange strange data")

fold += 1

此处的导入代码为:

^{pr2}$

以及#Add to train stack

self.train_stack = np.vstack((self.train_stack, self.pca_data[fold][data]))

self.pca_数据包含所有图像数据,这些数据必须分布在self.train_堆栈和self.test_堆栈。我尝试了type()函数,但这似乎是错误的。我也试过self.train_堆栈=[],但这会产生错误“ValueError:array dimensions must agreed except d_0”。如果我想用数字0,那么第一个堆栈是0的,我希望它在vstacking之前完全空。在

问题

初始化空numpy数组的正确方法是什么?(类型'努比·恩达雷')

请注意,self.train_堆栈处于循环中,因此if语句(对于if变量不存在)在第二次进入循环时不会重置该变量。在

变量在self.pca_数据:形状(978,20)类型(类型'努比·恩达雷')

在自我pca:形状(978,1)类型(类型'努比·恩达雷')

在self.test_堆栈以及self.train_堆栈例如形状(489,20)和形状(489,20)类似self.pca_数据在

其他可以忽略的变量

你可能感兴趣的:(python中vstack)