2016-07-30 91 views
0

因此,出于各种原因超出本文的职责,我写了一个文件,将数据从一个地方传输到另一个地方。我有一些在一系列多维数组的保持的数据的如何重新排列多维数组

让假装我有一个具有以下形状/尺寸的4维数组: [X,Y,Z,N]

如何将重新排列它在这些方面: [N,Z,Y,X] 或 [Z,Y,N,Z]

我不是找一个短期和快速的答案,或者一段代码。我想了解答案,以便为将来我可以在做我自己

我的想法: 拼合排列出与循环

for n in [n, :,:,:] for x in [:, x, :,:]

等等等等一系列的嵌套直到我将整个事物解开为一维数组。但我不知道我会究竟是如何找回来的形式,我想

+0

只是转置它!你会得到[n,z,y,x]版本。 – Julien

回答

0

移调:

>>> a = [[1,2,3],[4,5,6]] 
>>> b = zip(*a) 
>>> b 
[(1, 4), (2, 5), (3, 6)] 
0

的水平翻转你只需要一个循环。 你需要从第一个地方到中心位置,并用相同的一个替换每个。例如:

lets say that we have an int length. and then: 
for(int i=0;i<length/2;i++) 
{ 
    switch array[i] with array[length-i] 
}