python转置矩阵画流程图_python 矩阵转置transpose

2022-08-24 15:52:49 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

arr = np.arange(16).reshape((2, 2, 4))

arr的array是这样的

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7]],

[[ 8, 9, 10, 11],

[12, 13, 14, 15]]])

我们对arr进行transpose转置,arr2 = arr.transpose((1,0,2)),结果是这样:

array([[[ 0, 1, 2, 3],

[ 8, 9, 10, 11]],

[[ 4, 5, 6, 7],

[12, 13, 14, 15]]])

这是怎么来的呢。

arr.transpose((1,0,2))的1,0,2三个数分别代表shape()的三个数的顺序,初始的shape是(2,2,4),也就是2维的2 x 4矩阵,索引分别是shape的[0],[1],[2],arr.transpose((1,0,2))之后,我们的索引就变成了shape[1][0][2],对应shape值是shape(2,2,4),所以矩阵形状不变。

与此同时,我们矩阵的索引也发生了类似变化,如arr中的4,索引是arr[0,1,0],arr中的5是arr[0,1,1],变成arr2后,4的位置应该是在[1,0,0],5的位置变成[1,0,1],同理8的索引从[1,0,0]变成[0,1,0]。

这里正对opencv和caffe图像格式转化说明一下:

caffe存储图片使用的是:C×H×W

opencv存储图片使用的是:H×W×C

假设通过opencv处理的图像的索引为image([0],[1],[2]).故转化成caffe的格式为image([2],[0],[1]).

使用的函数便是image.transpose(2,0,1)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140798.html原文链接:https://javaforall.cn

0 人点赞