矩阵的转置

时间:2014-04-02 13:47:16

标签: python python-3.x numpy matrix transpose

我有一个名为class1维度为50x4的numpy数组。

我找到class1每列的平均值。 mean1 = np.mean(class1, axis=0)

np.mean返回mean1 = [ 5.006 3.428 1.462 0.246]

当我尝试mean1.T时,它仍会返回[ 5.006 3.428 1.462 0.246]

进行转置的正确方法是什么?

基本上我想做mean1.T * mean1,以便获得4x4矩阵

2 个答案:

答案 0 :(得分:5)

对于许多情况,可能最简单和最健壮的方法是使用np.outer

>>> mean1 = np.array([ 5.006,  3.428,  1.462,  0.246])
>>> np.outer(mean1, mean1)
array([[ 25.060036,  17.160568,   7.318772,   1.231476],
       [ 17.160568,  11.751184,   5.011736,   0.843288],
       [  7.318772,   5.011736,   2.137444,   0.359652],
       [  1.231476,   0.843288,   0.359652,   0.060516]])

由于mean1是一维数组transpose没有任何作用,因为没有任何内容可以转置。这是一个善意的numpy功能,有时会让人措手不及。

答案 1 :(得分:1)

怎么样

>>> mean1 = mean1[np.newaxis]
>>> mean1 * mean1.T