我有一个形状为(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),但是没有任何东西可以产生我想要的东西。有没有一种简单的方法可以做到这一点,还是我需要创建一个新数组并分别设置每个值?
重塑形状以将第一个轴分成两个,后者的长度3和转置-
3
a.reshape(-1,3).T
或按以下fortran顺序重塑形状参数:
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]])