您的位置:首页 > 编程语言 > Python开发

numpy.transpose解析

2017-04-26 14:12 218 查看
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.transpone((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)


索引的改变

  比如说arr[0, 1, 0] = 4, 转置后, 1和0调换,所以,调整后4的索引为[1, 0, 0],其余的数字以此类推。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  numpy