如何使用整形将N长度向量整形为numpy中的3x(N / 3)矩阵

发布于 2021-01-29 15:04:57

我有一个形状为(12,)的numpy数组。我想重塑它,使[[1,2,3,4,5,6,7,8,9,10,11,12]]变为

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

我尝试了a.reshape(3,4)和a.reshape(-1,4),但是没有任何东西可以产生我想要的东西。有没有一种简单的方法可以做到这一点,还是我需要创建一个新数组并分别设置每个值?

关注者
0
被浏览
82
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    重塑形状以将第一个轴分成两个,后者的长度3和转置-

    a.reshape(-1,3).T
    

    或按以下fortran顺序重塑形状参数:

    a.reshape(3,-1, order='F')
    

    样品运行-

    In [714]: a
    Out[714]: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
    
    In [715]: a.reshape(-1,3).T
    Out[715]: 
    array([[ 1,  4,  7, 10],
           [ 2,  5,  8, 11],
           [ 3,  6,  9, 12]])
    
    In [719]: a.reshape(3,-1, order='F')
    Out[719]: 
    array([[ 1,  4,  7, 10],
           [ 2,  5,  8, 11],
           [ 3,  6,  9, 12]])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看