相关疑难解决方法(0)

在NumPy中将4D阵列重塑为2D阵列的直觉和想法

虽然Kronecker-product出于教学原因(没有使用明显的和容易获得的np.kron()),我获得了一个4维数组作为中间结果,我将重塑以获得最终结果.

但是,我仍然无法围绕重塑这些高维阵列.我有这个4D数组:

array([[[[ 0,  0],
         [ 0,  0]],

        [[ 5, 10],
         [15, 20]]],


       [[[ 6, 12],
         [18, 24]],

        [[ 7, 14],
         [21, 28]]]])
Run Code Online (Sandbox Code Playgroud)

这是形状(2, 2, 2, 2),我想重塑它(4,4).有人可能会认为这很明显

np.reshape(my4darr, (4,4))
Run Code Online (Sandbox Code Playgroud)

但是,上述重塑并没有给我预期的结果,即:

array([[ 0,  5,  0, 10],
       [ 6,  7, 12, 14],
       [ 0, 15,  0, 20],
       [18, 21, 24, 28]])
Run Code Online (Sandbox Code Playgroud)

如您所见,预期结果中的所有元素都存在于4D数组中.我根本不能正确地根据需要进行重塑.除了答案之外,如何reshape为这种高维数组做一些解释将是非常有帮助的.谢谢!

python arrays numpy multidimensional-array reshape

17
推荐指数
2
解决办法
3684
查看次数

将矩阵折叠成列

我有一个2D矩阵,其中列的№总是3的倍数(例如250×27) -由于结果的重复组织(A,B,C,A,B,C,A,B,C,等等).我希望重新构造这个矩阵以创建一个包含3列的新矩阵 - 每个列包含每种类型的聚合数据(A,B,C)(例如2250×3).

因此,在矩阵中250×27,列中的所有数据1,4,7,10,13,16,19,22,25将被合并以形成所得到的重新形成矩阵的第一列.

生成的重新整形矩阵中的第二列将包含列中的所有数据2,5,8,11,14,17,20,23,26- 依此类推.

在MATLAB中有一个简单的方法吗?我只知道reshape如果我要合并的列是相邻(1,2,3,4,5,6)而不是非相邻(1,4,7,10,13,16)等.

arrays matlab matrix reshape

5
推荐指数
1
解决办法
254
查看次数