NumPy 数组转置

在 NumPy 中,数组转置指的是 “将数组的行和列” 进行互换。对于转置操作,我们需要清楚以下几点。

  • 转置操作不会修改原数组,而是返回一个新数组。
  • 如果数组是一维数组,转置操作不会改变其形状。
  • 对于高维数组,转置需要明确轴的顺序。

NumPy 提供了多种方法来实现数组转置,常用的有以下 2 种方式。

  • 使用 T 属性。
  • 使用 numpy.transpose() 函数。

T 属性转置数组

在 NumPy 中,我们可以使用 T 属性来转置数组。使用 T 属性是最简单的方法,适用于任意维度的数组。

语法:

ndarray.T

说明:

T 是数组对象(即 ndarray 对象)的一个属性,用于返回数组的转置。

示例 1:T 属性基本用法

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6]])
result = arr.T      # 转置数组

print(arr)
print(result)
print(arr.shape)
print(result.shape)

运行结果如下。

[[1 2]
 [3 4]
 [5 6]]

[[1 3 5]
 [2 4 6]]

(3, 2)
(2, 3)

分析:

从结果可以看出,arr.T 转置了数组 arr,原来的行变成了列,而原来的列变成了行。

示例 2:一维数组使用 T 属性

import numpy as np

arr = np.array([1, 2, 3])
result = arr.T

print(arr)
print(result)
print(arr.shape)
print(result.shape)

运行结果如下。

[1 2 3]
[1 2 3]
(3,)
(3,)

分析:

从结果可以看出,对于一维数组,使用 T 属性进行转置后,数组的形状并没有发生改变。

numpy.transpose() 转置数组

在 NumPy 中,我们可以使用 transpose() 函数来转置数组。

语法:

numpy.transpose(arr, axes=None)

说明:

transpose() 函数接收以下 2 个参数。

  • arr(必选):是一个数组。
  • axes(可选):用于指定转置的轴顺序。

示例 3:numpy.transpose() 转置二维数组

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6]])
result = np.transpose(arr)      # 转置数组

print(arr)
print(result)

运行结果如下。

[[1 2]
 [3 4]
 [5 6]]

[[1 3 5]
 [2 4 6]]

分析:

从结果可以看出,numpy.transpose(arr) 转置了 arr(这是一个二维数组),原来的行变成了列,而原来的列变成了行。

示例 4:numpy.transpose() 转置多维数组

import numpy as np

arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
result = np.transpose(arr, axes=(1, 0, 2))      # 交换第0轴和第1轴

print(result)

运行结果如下。

[[[1 2]
  [5 6]]

 [[3 4]
  [7 8]]]

上一篇: NumPy 数组合并

下一篇: NumPy 数组排序

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号