将np.array(n,m)重塑为np.array(m,n)

时间:2018-09-23 11:36:06

标签: python arrays numpy reshape

我有一个像这样的数组

ar = np.array([[0, 1, 0, 1, 0, 1, 0, 1],
       [0, 1, 0, 0, 0, 1, 1, 1]])

我想得到

array([[0., 0.],
       [1., 1.],
       [0., 0.],
       [1., 0.],
       [0., 0.],
       [1., 1.],
       [0., 1.],
       [1., 1.]])

如果我执行以下操作,我会得到

ar.reshape(8,2)
array([[0, 1],
       [0, 1],
       [0, 1],
       [0, 1],
       [0, 1],
       [0, 0],
       [0, 1],
       [1, 1]])

我的决定是

npar = np.zeros((np.asarray(ar).shape[1],np.asarray(ar).shape[0]))
npar[:, 0] = ar[0]
npar[:, 1] = ar[1]
npar
array([[0., 0.],
       [1., 1.],
       [0., 0.],
       [1., 0.],
       [0., 0.],
       [1., 1.],
       [0., 1.],
       [1., 1.]])

但是还有更便捷的方法吗?

1 个答案:

答案 0 :(得分:2)

您只需要进行我认为的移调

np.transpose(ar)