transponse是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.transponse((1, 0, 2))
''
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
''
这个稍微复杂一点,想明白确实想了一段时间。这个重塑,分为两步:
arr.shape
,得到数组结构(2, 2, 4)
,transponse参数(1, 0, 2)
,也就是说该数组调整后,结构不变还是(2, 2, 4)
。