详解Numpy中的transpose方法

本文介绍了Numpy中的轴(axis)概念,解释了二维和三维数组中transpose函数如何改变轴的相对位置以调整数组结构。在二维数组中,transpose相当于转置;在三维数组中,它涉及到轴的互换。原理同样适用于更高维度的数组。

最近在学Numpy碰到了关于数组转置和换轴的概念,对tanspose方法有些疑惑,尤其是多维,查了不少资料,终于搞懂了。

Numpy数组的轴(axis)

所谓的**轴(axis)**可以理解为数组的维度。

具体而言,二维数组就是有两个维度,如果从空间上看,它就是一个平面,由x轴和y轴构成,而与此相对应的,该二维数组就有两个轴,x轴对应0轴,y轴对应1轴。

同理,三维数组有三个维度,空间上有x轴、y轴和z轴构成,与此对应,该三维数组有三个轴,x轴对应0轴,y轴对应1轴,z轴对应2轴。更高维度的数组以此类推。

transpose函数的作用

transpose函数实际上就是通过改变的相对位置来调整数组的结构。

例如:

二维数组中,transpose函数的作用相当于转置

x = np.arange(4).reshape((2,2)) #默认轴的相对位置为0,1
print(x)
#输出结果
[[0 1]   
 [2 3]]
### Numpy `transpose` 函数详解 #### 1. 基本概念 Numpy 的 `transpose` 函数用于改变数组的轴顺序,从而实现矩阵转置的效果。对于二维数组而言,这相当于行列互换;而对于多维数组,则可以重新排列各个维度的位置。 #### 2. API 接口说明 函数签名如下所示: ```python numpy.transpose(a, axes=None) ``` 参数解释: - `a`: 输入数组。 - `axes`: 可选参数,默认为 None。如果提供此参数,则按照给定的新轴序来重排数据;如果不给出该参数,则默认反转所有轴的方向[^3]。 返回值是一个视图对象,表示原数组经过变换后的版本。 #### 3. 示例代码展示 ##### 例子一:简单二阶张量(即矩阵)转置 ```python import numpy as np A = np.array([[1, 2], [3, 4]]) print("Original matrix:\n", A) B = np.transpose(A) print("\nTransposed matrix using transpose():\n", B) ``` 输出结果将是原始矩阵与其转置形式之间的对比显示。 ##### 例子二:三维数组沿特定轴方向进行转置操作 考虑一个形状为 `(2, 3, 4)` 的三维数组 X ,现在希望将其第二和第三两个轴位置调换得到新的数组 Y 。可以通过下面的方式完成这一目标: ```python X = np.random.rand(2, 3, 4) Y = X.transpose((0, 2, 1)) print('Shape of original array:', X.shape) print('Shape after transposing axis 1 and 2:', Y.shape) ``` 这段程序会打印出转换前后数组的具体尺寸信息[^4]。 #### 4. 结合 reshape 进行复杂的数据重组 有时候不仅需要调整轴的顺序还需要改变某些维度大小,在这种情况下就可以联合使用 `reshape()` 和 `transpose()` 来达到目的。例如先通过 `reshape()` 将高维数据降成低维再做必要的转置处理,反之亦然。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值