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

Reshape np.array(n, m) to np.array(m, n)

我有一个这样的数组

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.]])

但是有没有更快捷方便的方法呢?

你只需要进行我认为的转置

np.transpose(ar)