我想做以下事情:
for i in dimension1:
for j in dimension2:
for k in dimension3:
for l in dimension4:
B[k,l,i,j] = A[i,j,k,l]
不使用循环。最后 A 和 B 都包含相同的信息但被索引 不同。
我必须指出,维度 1、2、3 和 4 可以相同或不同。所以 numpy.reshape() 似乎很困难。
最佳答案
在 numpy 中执行此操作的规范方法是使用 np.transpose
的可选排列参数。在您的情况下,从 ijkl
到 klij
,排列是 (2, 3, 0, 1)
,例如:
In [16]: a = np.empty((2, 3, 4, 5))
In [17]: b = np.transpose(a, (2, 3, 0, 1))
In [18]: b.shape
Out[18]: (4, 5, 2, 3)
关于python - 交换numpy数组的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943379/