如何使用整形将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 个回答
-
重塑形状以将第一个轴分成两个,后者的长度
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]])