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

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

本文详细解析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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。