【问题标题】:How to reshape an array with numpy like this:如何像这样用 numpy 重塑数组:
【发布时间】:2021-04-18 17:07:25
【问题描述】:

我有这个:

array([[0, 0, 1, 1, 2, 2, 3, 3],
       [0, 0, 1, 1, 2, 2, 3, 3]])

我想像这样重塑我的数组:

array([[0, 0, 1, 1],
       [0, 0, 1, 1],
       [2, 2, 3, 3],
       [2, 2, 3, 3]])

如何使用 python numpy 做到这一点?

【问题讨论】:

    标签: python-3.x numpy reshape


    【解决方案1】:

    你可以只拆分和连接:

    a = np.array([[0, 0, 1, 1, 2, 2, 3, 3],
                  [0, 0, 1, 1, 2, 2, 3, 3]])
    
    cols = a.shape[1] // 2
    np.concatenate((a[:,:cols], a[:,cols:]))
    
    #[[0 0 1 1]
    # [0 0 1 1]
    # [2 2 3 3]
    # [2 2 3 3]]
    

    【讨论】:

      【解决方案2】:

      你可以在重塑后简单地交换行。

      a= np.array([[0, 0, 1, 1, 2, 2, 3, 3],
             [0, 0, 1, 1, 2, 2, 3, 3]]).reshape(4,4)
      
      a[[1,2]] = a[[2,1]]
      

      输出:

      array([[0, 0, 1, 1],
             [0, 0, 1, 1],
             [2, 2, 3, 3],
             [2, 2, 3, 3]])
      

      【讨论】:

        猜你喜欢
        • 2020-04-04
        • 1970-01-01
        • 2018-09-02
        • 2017-11-11
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多