我有一个名为 class1
的 numpy 数组,维度为 50x4
。
我找到了 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
矩阵
最佳答案
在许多情况下,最简单和最可靠的方法可能是使用 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 的一个用心良苦的功能,有时会让人们措手不及。
关于python - 矩阵转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813513/