小编典典

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

python

我有一个形状为(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),但是没有任何东西可以产生我想要的东西。有没有一种简单的方法可以做到这一点,还是我需要创建一个新数组并分别设置每个值?


阅读 226

收藏
2021-01-20

共1个答案

小编典典

重塑形状以将第一个轴分成两个,后者的长度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]])
2021-01-20