np.asarray()给我一列数组,其中数据为多列

问题描述 投票:0回答:2
print(X_train_bow.shape) #Output: (897, 2794)
print(type(X_train_bow)) #Output: <class 'scipy.sparse.csr.csr_matrix'>

x_train_groups = [X_train_bow[i::3] for i in range(3)]

print(x_train_groups[0].shape) #Output: (299, 2794)
print(type(X_train_bow[0])) #Output: <class 'scipy.sparse.csr.csr_matrix'>

K = 1
train_data = []
test_data = []

for j in range(0, 3):
    if(j != K):
        train_data.extend(x_train_groups[j]) 
test_data.extend(x_train_groups[K])   

print(np.asarray(train_data).shape) #Output: (598,)
print(np.asarray(test_data).shape) #Output: (299,)

我正在尝试k折交叉验证。因此,我创建了一种合并训练和测试数据的方法。但是问题是,当我调用np.asarray时,它返回与原始数据形状不同的形状数组。您可以看到代码。我还打印了输出以寻求帮助。

python numpy-ndarray
2个回答
0
投票
只需将它们直接设置为np.arrays,而不是扩展列表。

类似:

K = 1 for j in range(0, 3): if(j != K): train_data = x_train_groups[j] else: train_data = None test_data = x_train_groups[K]


0
投票
train_data = x_train_groups[299:, ] # shape: (598, 2794) test_data = x_train_groups[0:299, ] # shape: (299, 2794)
© www.soinside.com 2019 - 2024. All rights reserved.