在numpy中重塑时,如何保持特定尺寸不变?

2024-10-19 16:39:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个巨大的(N*20)矩阵,其中每5行是一个有效样本,即每(5*20)个矩阵。我试图把它重塑成一个(N/5,1,20,5)矩阵,在这个矩阵中,20的维数保持不变。我可以用keep\ u dim在tensroflow中完成,但如何用numpy实现呢?你知道吗

提前谢谢。你知道吗


Tags: numpy矩阵样本keepdim重塑维数行是
1条回答
网友
1楼 · 发布于 2024-10-19 16:39:21

重塑形状,然后交换轴:

 arr1 = arr.reshape(N/5,5,1,20)
 arr2 = arr1.transpose(0,2,3,1)

例如

In [476]: arr = np.arange(24).reshape(6,4)
In [477]: arr
Out[477]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])
In [478]: arr1 = arr.reshape(2,3,1,4)
In [479]: arr2 = arr1.transpose(0,2,3,1)
In [480]: arr2.shape
Out[480]: (2, 1, 4, 3)
In [482]: arr2
Out[482]: 
array([[[[ 0,  4,  8],
         [ 1,  5,  9],
         [ 2,  6, 10],
         [ 3,  7, 11]]],


       [[[12, 16, 20],
         [13, 17, 21],
         [14, 18, 22],
         [15, 19, 23]]]])

相关问题 更多 >