【问题标题】:Rearranging numpy array重新排列numpy数组
【发布时间】:2016-08-24 22:21:18
【问题描述】:
import numpy as np
a = np.array([[1,2],
              [3,4],
              [5,6],

             [7,8],
             [9,10],
             [11,12]])
print np.shape(a)

预期的答案应该是:

answer = np.array([[1,2,7,8],
              [3,4, 9, 10],
              [5,6, 11, 12]])

我试过了

ans = a.reshape(3,-1)    
print ans

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

但答案是错误的。怎么做?

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    我将使用split 进行此操作:

    In [110]: np.hstack(np.split(a,2))
    Out[110]:
    array([[ 1,  2,  7,  8],
           [ 3,  4,  9, 10],
           [ 5,  6, 11, 12]])
    

    【讨论】:

      【解决方案2】:

      你可以使用一些轴的重塑和交换,像这样 -

      L = 3 # Cutting length
      out = a.reshape(-1,L,a.shape[1]).swapaxes(0,1).reshape(L,-1)
      

      或者使用np.transpose 来交换轴,像这样 -

      out = a.reshape(-1,L,a.shape[1]).transpose(1,0,2).reshape(L,-1)
      

      【讨论】:

        猜你喜欢
        • 2013-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多