1.我使用cv2.imread读取numpy数组中的大图像(1234x1624x3)
2.使用cv2.dnn.blobFromImage将其转换为(1,3,1234,1624) numpy数组
3.我使用tolist()将其转换为列表中的4D列表
我的问题是:
如何转置此列表的轴
从(1,3,1234,1624)到(1,1234,1624,3)?
我先尝试了np.transpose(image, (0, 2, 3, 1)),然后再执行tolist(),但它似乎非常慢。因此,我想以列表的形式进行转置。
我已经检查了下面的问题,它似乎很快,但只能转置2D列表Transpose list of lists
非常感谢!
更新:
我有一个名为temp的列表。
len(temp)=1 len(temp[0])=3 len(temp[0][0])=1234 len(temp[0][0][0])=1624
我想把它的轴转换成
len(temp)=1 len(temp[0])=1234 len(temp[0][0])=1624 len(temp[0][0][0])=3
如何使用temp1=list(map(list, zip(*temp))
发布于 2019-07-03 17:00:58
它可以做到numpy-less和纯功能,但它并不美观:
from itertools import starmap, repeat
a = np.ones((1,3,1234,1624)).tolist()
b = list(map(list, map(map, repeat(list), map(starmap, repeat(zip), starmap(zip, a)))))
np.shape(b)
# (1, 1234, 1624, 3)https://stackoverflow.com/questions/56864043
复制相似问题