数组转置和换轴

作者: 庵下桃花仙 | 来源:发表于2019-01-18 22:00 被阅读2次

转置是一种特殊的数据重组形式,返回底层数据的视图,不需要复制任何内容。数组有 transpose 方法,也有特殊的转置属性。

In [1]: import numpy as np

In [2]: arr = np.arange(15).reshape((3, 5))

In [3]: arr
Out[3]:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

In [4]: arr.T
Out[4]:
array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])

In [5]: arr
Out[5]:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

In [6]: arr = np.random.randn(6, 3)

In [7]: arr
Out[7]:
array([[-1.64653839, -0.52210913, -1.74885951],
       [-0.53473192, -0.27127999,  1.45919575],
       [-1.48121978,  1.41565629,  0.65597595],
       [-0.11891411,  0.26513052, -0.5896387 ],
       [ 0.16531958,  0.07125219,  0.27832976],
       [ 0.54263539, -0.51469326,  1.84498696]])

In [8]: np.dot(arr.T, arr)
Out[8]:
array([[ 5.52696324, -1.39120246,  2.24492615],
       [-1.39120246,  2.69055373,  0.35977941],
       [ 2.24492615,  0.35977941,  9.44718438]])

对于更高维的数组, transpose 方法可以接收包含轴编号的元组,用来置换轴。

In [9]: arr = np.arange(16).reshape((2, 2, 4))

In [10]: arr
Out[10]:
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]]])

In [11]: arr.transpose((1, 0, 2))
Out[11]:
array([[[ 0,  1,  2,  3],
        [ 8,  9, 10, 11]],

       [[ 4,  5,  6,  7],
        [12, 13, 14, 15]]])

用 .T 转置是换轴的特例。swapaxes 方法,接收一对轴编号作为参数,重组数据。

In [12]: arr
Out[12]:
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]]])

In [13]: arr.swapaxes(1, 2)
Out[13]:
array([[[ 0,  4],
        [ 1,  5],
        [ 2,  6],
        [ 3,  7]],

       [[ 8, 12],
        [ 9, 13],
        [10, 14],
        [11, 15]]])

相关文章

  • 数组转置和换轴

    转置是一种特殊的数据重组形式,返回底层数据的视图,不需要复制任何内容。数组有 transpose 方法,也有特殊的...

  • 2021-12-30 Python-22

    数组的转置和换轴 条件逻辑作为数组操作之前有提到过列表推导式[expr for val in collection...

  • Learn_for_Numpy

    数组转置和交换轴 转置 矩阵的行列交换 1. numpy.where (x if condition else ...

  • numpy之转置(transpose)和轴对换

    转置(transpose)和轴对换 转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制操作)。 转置有...

  • NumPy(数组转置和轴对换)

    转置(T)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作)。 利用np.dot计算矩阵内积 对...

  • numpy -- 数组转置和轴对换

    重塑 转置 矩阵相乘 transpose 详细解释: arr数组的内容为 - a[0][0] = [0, 1, 2...

  • 101、数组转置和轴对换

    转置是重塑的一种特殊形式,它返回的是源数据的视图(不进行复制操作)。数组不仅有transpose方法,还有一...

  • python——numpy库入门(3)

    数组转置和轴对换 转置是重塑的一种特殊形式,它返回的是源数据的视图,不会进行复制操作。它有transpose方法和...

  • Numpy的数组转置和轴对换

    数组转置和轴对换 转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视 图(不会进行任何复制操作)...

  • python 数据分析之Numpy(基础篇)

    目录 1. 数组创建函数 2. 数据运算 3. 索引和切片 4. 数组转置和轴对换 5. 函数 NumPy 安装与...

网友评论

    本文标题:数组转置和换轴

    本文链接:https://www.haomeiwen.com/subject/pouodqtx.html