【问题标题】:Python: append kmean.labels_ to Numpy arrayPython:将 kmeans.labels_ 附加到 Numpy 数组
【发布时间】:2017-08-18 22:13:22
【问题描述】:

两个Numpy数组的大小分别是:

(406, 278)
(406,)

但是,在附加 Numpy 数组时出错:

ValueError:所有输入数组的维数必须相同

代码:

y = numpy.array(kmeans.labels_,copy=True)
x = numpy.append(x, y, axis=1); #error
x = numpy.append(x, y, axis=0); #error

【问题讨论】:

    标签: arrays python-3.x numpy append k-means


    【解决方案1】:

    正如错误所说,您正在尝试使用轴参数将一维数组附加到二维数组,并根据文档:

    当指定axis 时,values 必须具有正确的形状。

    您需要先将y 重塑为二维数组:

    这两种方法都应该有效:

    np.append(x, y[None, :], axis=0)
    np.append(x, y.reshape(1,-1), axis=0)
    

    【讨论】:

      【解决方案2】:

      根据numpy documentation

      指定轴时,值必须具有正确的形状。

      所以如果要将向量y = [0 1 2]附加到矩阵x = [[0, 0],[1, 1],[2, 2]]axis=1上,首先需要将y转为矩阵形式,然后转置:

      x = numpy.zeros((406,278))
      y = numpy.zeros((406,))
      x = numpy.append(x, numpy.transpose([y]), axis=1);
      print(x.shape)   # gives (406,279)
      

      【讨论】:

        猜你喜欢
        • 2021-10-12
        • 1970-01-01
        • 2013-03-22
        • 2020-01-10
        • 2021-08-21
        • 2017-05-22
        • 2021-02-21
        • 2021-10-25
        • 2020-03-13
        相关资源
        最近更新 更多