numpy.transpose解析

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]]])
''

这个稍微复杂一点,想明白确实想了一段时间。这个重塑,分为两步:

  1. 结构的调整
      首先输入arr.shape,得到数组结构(2, 2, 4),transponse参数(1, 0, 2),也就是说该数组调整后,结构不变还是(2, 2, 4)
  2. 索引的改变
      比如说arr[0, 1, 0] = 4, 转置后, 1和0调换,所以,调整后4的索引为[1, 0, 0],其余的数字以此类推。

你可能感兴趣的:(python)