使用python numpy转置矩阵

时间:2017-03-28 15:30:33

标签: python numpy matrix inverse

这是我目前的矩阵:

[[0, 1, 2, 4],
 [0, 3, 1, 3],
 [0, 2, 3, 2],
 [0, 2, 4, 1],
 [0, 4, 1, 2],
 [0, 3, 2, 2],
 [1, 2, 2, 2]]

我想转置它并将其作为输出:

[[0, 0, 0, 0, 1], 
 [2, 2, 4, 3, 2], 
 [3, 4, 1, 2, 2], 
 [2, 1, 2, 2, 2]]

我使用了inverse = np.swapaxes(ate,0,7),但我不确定我的axis2值是多少。这里axis2是7.

2 个答案:

答案 0 :(得分:2)

我认为你要找的是np.transpose()

答案 1 :(得分:2)

您可以使用np.swapaxes,但这会切换"尺寸",因此对于01的矩阵,因为您有两个维度:

>>> np.swapaxes(arr, 0, 1)   # assuming your matrix is called arr
array([[0, 0, 0, 0, 0, 0, 1],
       [1, 3, 2, 2, 4, 3, 2],
       [2, 1, 3, 4, 1, 2, 2],
       [4, 3, 2, 1, 2, 2, 2]])

要获得所需的输出,您需要删除swapaxes之前的前两列:

>>> np.swapaxes(arr[2:], 0, 1)
array([[0, 0, 0, 0, 1],
       [2, 2, 4, 3, 2],
       [3, 4, 1, 2, 2],
       [2, 1, 2, 2, 2]])

但是,如果要转置矩阵/数组,通常应使用np.transpose.T

>>> arr[2:].T
array([[0, 0, 0, 0, 1],
       [2, 2, 4, 3, 2],
       [3, 4, 1, 2, 2],
       [2, 1, 2, 2, 2]])