Python NumPy数组转置与轴变换详解

Mia
Mia
发布时间:2026-10-13 | 2人浏览过
原创

本文详细解析Python NumPy库中数组转置与轴变换的核心概念。涵盖矩阵转置、内积计算、二维及三维数组的轴交换方法,通过具体代码示例演示transpose与swapaxes函数的使用,帮助开发者掌握多维数据操作技巧。

NumPy数组转置与轴变换概述

本文深入探讨Python中NumPy库的数组转置与轴变换技术,通过详细的代码示例展示其实际应用,为学习和工作提供有价值的参考。

矩阵转置与内积基础

理解矩阵转置的基本概念


>>> import numpy as np
>>> 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]])

掌握矩阵内积的计算方法


>>> import numpy as np
>>> 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]])
>>> np.dot(arr.T,arr)
array([[125, 140, 155, 170, 185],
    [140, 158, 176, 194, 212],
    [155, 176, 197, 218, 239],
    [170, 194, 218, 242, 266],
    [185, 212, 239, 266, 293]])

轴变换原理与二维操作

了解轴变换的基本原理

分析二维数组的轴变换操作

实现两个轴的简单交换


>>> import numpy as np
>>> 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.transpose(1,0)#1轴和0轴进行交换
array([[ 0, 5, 10],
    [ 1, 6, 11],
    [ 2, 7, 12],
    [ 3, 8, 13],
    [ 4, 9, 14]])

三维数组的轴变换详解

深入三维数组的复杂轴变换


>>> 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.transpose((1,0,2))
array([[[ 0, 1, 2, 3],
    [ 8, 9, 10, 11]],

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

三维变换看似复杂,但若将矩阵中的每个点表示为P(x,y,z),在NumPy中x、y、z分别对应索引0、1、2,理解起来就简单多了。

以原数组中坐标为(0,0,0)的元素0为例,执行transpose(1,0,2)时,x和y坐标互换,z坐标保持不变,因此该点在新矩阵中的坐标仍为(0,0,0)。

再看另一个例子,坐标为(0,1,1)的元素4,其x和y坐标交换后变为(1,0,1),因此它在新矩阵中的位置对应于索引(1,0,1)。

实际上,transpose函数正是通过对原矩阵中每个点执行上述坐标变换,最终生成新的矩阵结构。

轴交换操作示例

演示两轴交换的具体效果

展示交换第1轴和第2轴的操作结果


>>> arr
array([[[ 0, 1, 2, 3],
    [ 4, 5, 6, 7]],

    [[ 8, 9, 10, 11],
    [12, 13, 14, 15]]])
>>> arr.swapaxes(1,2)
array([[[ 0, 4],
    [ 1, 5],
    [ 2, 6],
    [ 3, 7]],

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

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

以上内容涵盖了NumPy数组转置与轴变换的主要知识点,希望能为读者的学习提供帮助,欢迎继续支持本站获取更多技术资源。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表