python numpy交换数组的维度

2023-03-10 00:00:00 数组 交换 维度

在 NumPy 中,可以使用 numpy.transpose 函数来交换数组的维度。numpy.transpose 函数接受一个数组作为输入,并返回一个具有相同元素的新数组,但是维度顺序被交换了。

以下是一个简单的示例,演示如何使用 NumPy 交换数组的维度:

import numpy as np

# 定义一个 2x3x4 的三维数组
arr = np.arange(24).reshape((2, 3, 4))

# 输出原始数组
print("原始数组:")
print(arr)
print("原始数组形状:", arr.shape)

# 使用 transpose 函数交换数组的维度
new_arr = np.transpose(arr, (1, 0, 2))

# 输出新数组
print("交换维度后的数组:")
print(new_arr)
print("新数组形状:", new_arr.shape)

在这个示例中,我们首先定义了一个 2x3x4 的三维数组 arr,然后使用 numpy.transpose 函数交换了维度 0 和维度 1,得到一个新的数组 new_arr。我们使用 (1, 0, 2) 作为第二个参数传递给 numpy.transpose 函数,表示将原始数组的第 0 个维度和第 1 个维度交换。

输出结果应该是:

原始数组:
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
原始数组形状: (2, 3, 4)
交换维度后的数组:
[[[ 0  1  2  3]
  [12 13 14 15]]

 [[ 4  5  6  7]
  [16 17 18 19]]

 [[ 8  9 10 11]
  [20 21 22 23]]]
新数组形状: (3, 2, 4)

可以看到,使用 numpy.transpose 函数可以方便地交换数组的维度。注意,我们需要指定交换维度的顺序。在本例中,我们指定交换维度的顺序为 (1, 0, 2),表示将原始数组的第 0 个维度和第 1 个维度交换。

相关文章