numpy数组错误“错误('X.shape [0]和y.shape [0]应该相同”

时间:2017-02-21 04:53:37

标签: python arrays numpy

我试图将我的数据文件转换为LibSVM文件格式并出现此错误:

for character in binary:
    if character != '1' and character != '0':
        valid = False
        break

if var != 2:
    accepted = False

我有一个维度和标签文件的文件功能,错误发生在功能文件(列车数据)中。我对不同类型的功能使用相同的代码,因为它是2D,所以没有错误。你能帮我吗?

ValueError('X.shape[0] and y.shape[0] should be the same  got 1L and 3997L instead.',), <traceback object at 0x000000000DC9E608>

打印数组的形状:((1L,3997L):user_train(特征1D),(3997L,):标签也是1D)

1 个答案:

答案 0 :(得分:0)

  

X.shape [0]和y.shape [0]应该是1L和3997L相同。

这意味着user_train.shape[0]train_label.shape[0]应该是相同的值,但在您的情况下,它是1和3997.

一般情况下,如果您有N个培训示例和M个功能(在您的情况下,它是train_label)。然后,X(在您的情况下,user_train)的维度应为N X My的维度应为N X 1

您可以在训练模型之前验证其尺寸,以避免此类错误。

  

解决方案

在这种情况下,您可以使用reshape()transpose()转换为所需尺寸。

我想在您的示例中,user_train的维度为1 X 3997train_label的维度为(3997,)。因此,为了匹配维度,您可以重新整形或转置n维数组user_train以解决问题。