关于python中的transpose
2021-04-18 14:29
标签:log mat 运行 观点 三维 思维 分割 blog 输出 原文地址:https://www.cnblogs.com/chenyansu/p/6774963.html, 看书中看到一行代码: mymatrix5 = mat([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) mymatrix5.transpose() 在Numpy对矩阵的转置中,我们可以用transpose()函数来处理。 这个函数的运行是非常反常理的,可能会令人陷入思维误区。 假设有这样那个一个三维数组(2*4*2): array ([[[ 0, 1, 2, 3], [[ 8, 9, 10, 11], (1). 错误的观点 我们通常的想法是 从x轴看去,0, 1 ,2 ,3 从y轴看去,0,4 从z轴看去,0, 8 这样表达或许更清晰 y y x: 0, 1, 2, 3 ----z---- 8, 9, 10, 11 4, 5, 6, 7 ----z----12, 13, 14, 15 下标的排列为[x, y, z] (2). 正确的观点 事实上,上述庙是是错误的,我们可以通过下标来测试: arr[0, 0, 0] arr[1, 0, 0] arr[0, 1, 0] arr[0, 0, 1] 可以看出,通过改变第一个下标, 我们实际的变动为(1)中表示的z,而不是x,arr[1, 0, 0]所得的数是8而不是1;通过改变第三个下标, 我们实际的变动为(1)中表示的x,而不是z,arr[0, 0, 1]所得的数是1而不是8. 所以,一个数的下标为[z, y, x] (3)transpose函数的使用 首先,我们利用transpose原样输出 arr.transpose((0, 1, 2)) -----------结果的分割线---------- [[ 8, 9, 10, 11], 在这里,transpose()函数的(0, 1, 2)对应着(z, y, x)轴 当我们输入arr.transpose((0, 2, 1))时,产生下列结果 [[ 8, 12], 我们可以看到,当我们改变了1和2的位置,x和y转置了。 (4)总结:重点在于理解,三维数组的下标为[z, y, x], transpose()对其的默认编号为0=z, y=1, x=2. 关于python中的transpose 标签:log mat 运行 观点 三维 思维 分割 blog 输出 原文地址:https://www.cnblogs.com/guochaoxxl/p/13294032.html
[ 4, 5, 6, 7]],
[12, 13, 14, 15]]])
0
8
4
1
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[12, 13, 14, 15]]])
array([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]],
[ 9, 13],
[10, 14],
[11, 15]]])
上一篇:哪些人需要学习Python开发?
下一篇:Python记录
文章标题:关于python中的transpose
文章链接:http://soscw.com/index.php/essay/76292.html