这是我目前的矩阵:
[[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.
答案 0 :(得分:2)
我认为你要找的是np.transpose()
答案 1 :(得分:2)
您可以使用np.swapaxes
,但这会切换"尺寸",因此对于0
或1
的矩阵,因为您有两个维度:
>>> 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]])