Python 我需要重塑矩阵

Python 我需要重塑矩阵,python,numpy,Python,Numpy,我有4x16矩阵。我有1000个。 目前,它们存储为1000 x 4 x 16。 然而,我想首先转置矩阵。(16 x 4)。然后把它们放在1000行上 1000 x 16 x 4 我应该如何使用numpy或python中的任何其他方法重塑我的1000 x 4 x 16。您的输入: >>> test = np.vstack([ np.zeros((1,3,4)), np.ones((1,3,4))]) >>> test[0] array([[ 0., 0.,

我有4x16矩阵。我有1000个。 目前,它们存储为1000 x 4 x 16。 然而,我想首先转置矩阵。(16 x 4)。然后把它们放在1000行上

1000 x 16 x 4

我应该如何使用numpy或python中的任何其他方法重塑我的1000 x 4 x 16。

您的输入:

>>> test = np.vstack([ np.zeros((1,3,4)), np.ones((1,3,4))])
>>> test[0]
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

>>> test[1]
array([[ 1.,  1.,  1.],
   [ 1.,  1.,  1.],
   [ 1.,  1.,  1.],
   [ 1.,  1.,  1.]])
您的输出:

>>> new_test = np.vstack([m.T[None,:,:] for m in test])
>>> new_test[0]
array([[ 0.,  0.,  0.,  0.],
   [ 0.,  0.,  0.,  0.],
   [ 0.,  0.,  0.,  0.]])

>>> new_test[1]
array([[ 1.,  1.,  1.,  1.],
   [ 1.,  1.,  1.,  1.],
   [ 1.,  1.,  1.,  1.]])
你的意见:

>>> test = np.vstack([ np.zeros((1,3,4)), np.ones((1,3,4))])
>>> test[0]
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

>>> test[1]
array([[ 1.,  1.,  1.],
   [ 1.,  1.,  1.],
   [ 1.,  1.,  1.],
   [ 1.,  1.,  1.]])
您的输出:

>>> new_test = np.vstack([m.T[None,:,:] for m in test])
>>> new_test[0]
array([[ 0.,  0.,  0.,  0.],
   [ 0.,  0.,  0.,  0.],
   [ 0.,  0.,  0.,  0.]])

>>> new_test[1]
array([[ 1.,  1.,  1.,  1.],
   [ 1.,  1.,  1.,  1.],
   [ 1.,  1.,  1.,  1.]])
怎么样

np.swapaxes(your_matrix, 1, 2)
请参见

np.swapaxes(your_matrix, 1, 2)

我们应该这样做


我们应该玩这个把戏吗?当然可以。是的,我想和numpyAre谈谈我们在说numpy吗?当然。是的,我想用numpyNice!我不知道这个功能!我会使用
3Dmatrix.transpose(0,2,1)
,但这只是个人偏好。我发现,如果维度数较少(小于4),交换就很容易使用,如果维度数较高,交换就更容易使用。很好!我不知道这个功能!我会使用
3Dmatrix.transpose(0,2,1)
,但这只是个人偏好。我发现,如果维度数量较少(小于4),交换就很容易使用,而如果维度较高,交换就更容易使用。