【发布时间】:2017-08-07 12:41:01
【问题描述】:
我有一个 4d 数组 (python),其中包含一批 10000 个图像,每个图像中有 5 个通道。每个图像为 25*25,即 4d 阵列形状为 10000*5*25*25。
我需要转置图像。天真的方法是使用嵌套循环:
for i in range(np.shape(img)[0]):
for j in range(np.shape(img)[1]):
img[i, j, :, :] = np.transpose(img[i, j, :, :])
但我确信有一种更有效的方法可以做到这一点。你有什么想法吗?
谢谢!
【问题讨论】:
-
它是
np.transpose(img, [0, 1, 3, 2])。不过,我敢肯定,这里之前已经有人问过这个问题:) -
对不起,我没有找到类似的问题。
-
hmm.. 我只能找到这个:stackoverflow.com/q/41038976/3005167 但我不得不承认它有点难找...
-
作为进一步的信息:
img[i ,j ,: ,: ]相当于img[i ,j ],所以你可以节省一些索引,这可能会提高你代码的可读性
标签: python arrays numpy multidimensional-array transpose