transpose是numpy重塑数组的方法。
首先,数组有一个特殊的T属性:
arr = np.arange(
15).reshape((
3,
5))
arr
''
array(
[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
''
arr.T
''
array(
[[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
''
这个还是比较简单的,数组的简单轴对换。
对高维数组,可以用transponse进行更复杂的转置:
arr = np.arange(
16).reshape((
2,
2,
4))
arr
''
array(
[[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
''
arr.transpone((
1,
0,
2))
''
array(
[[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
''
这个稍微复杂一点,想明白确实想了一段时间。这个重塑,分为2步:
结构的调整 首先输入arr.shape,得到数组结构(2, 2, 4),transponse参数(1, 0, 2),也就是说该数组调整后,结构不变还是(2, 2, 4)。
索引的改变 比如说arr[0, 1, 0] = 4, 转置后, 1和0调换,所以,调整后4的索引为[1, 0, 0],其余的数字以此类推。
http://blog.csdn.net/qq575379110/article/details/70799862