为什么pca [:,1]具有一维数组的形状,而不是具有一列的矩阵?

时间:2014-12-04 01:37:01

标签: python numpy

pca是一个2x2矩阵。我想将pca[:,1]乘以另一个2x2矩阵,如下所示:pca [:,1] .T * XtX,但是numpy说 “矩阵不对齐”。

为什么pca[:,1].shape(2, )”?

我知道我可以重塑,但看起来很脏。关于如何干净利落地工作的任何想法?

1 个答案:

答案 0 :(得分:0)

如果要形成单列子矩阵而不是提取,请选择索引的单元素数组,而不是单个索引:{{ 1}}而不是pca(:, [1])

pca(:, 1)

此处import numpy as np pca = np.array([[1, 2], [3, 4]]) pca[:, 1].shape # returns (2,) pca[:, [1]].shape # returns (2, 1) pca[:, 1]array([2, 4])pca[:, [1]]

在您的示例中,长度为1的维度的存在与否不是矩阵乘法的障碍。但它在其他情况下很重要,例如

array([[2], [4]])