NumPy swapaxes() 函数



NumPy 的swapaxes() 函数交换数组的两个指定轴,这实际上是重新排序其维度。

此函数用于将数据转置到不同的方向,而无需更改底层数据。例如,给定一个形状为 (2, 3, 4) 的数组,调用 swapaxes(arr, 0, 2) 将得到一个形状为 (4, 3, 2) 的数组。

此函数需要三个参数,即要修改的数组以及要交换的两个轴索引。返回的数组是原始数组的视图,因此不会复制数据,这使得它对于大型数据集非常高效。

语法

NumPy swapaxes() 函数的语法如下所示:

numpy.swapaxes(a, axis1, axis2)

参数

以下是 NumPy swapaxes() 函数的参数:

  • a : 您要交换轴的输入数组。
  • axis1 : 要交换的第一个轴。
  • axis2 : 要交换的第二个轴。

返回值

此函数返回输入数组的视图,其中交换了指定的轴。数据不会被复制,只会更改视图。

示例 1

以下是 NumPy swapaxes() 函数的示例,它交换二维数组的行和列:

import numpy as np

# Create a 2D array
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("Original Array:\n", array_2d)

# Swap axes
swapped_array_2d = np.swapaxes(array_2d, 0, 1)
print("Swapped Axes Array:\n", swapped_array_2d)

输出

Original Array:
 [[1 2 3]
  [4 5 6]]
Swapped Axes Array:
 [[1 4]
  [2 5]
  [3 6]]

示例 2

此示例通过相应地修改其形状来交换四维数组的第二个和第三个轴。

import numpy as np

# Create a 4D array
array_4d = np.arange(24).reshape(2, 3, 4, 1)
print("Original Array shape:", array_4d.shape)

# Swap axes
swapped_array_4d = np.swapaxes(array_4d, 1, 2)
print("Swapped Axes Array shape:", swapped_array_4d.shape)

输出

Original Array shape: (2, 3, 4, 1)
Swapped Axes Array shape: (2, 4, 3, 1)

示例 3

以下是如何使用swapaxes() 函数在三维 ndarray 中交换轴的示例:

import numpy as np

# Creating a 3-dimensional ndarray
a = np.arange(8).reshape(2, 2, 2)

print('The original array:')
print(a)
print('\n')

# Swapping numbers between axis 0 (along depth) and axis 2 (along width)
swapped_array = np.swapaxes(a, 2, 0)

print('The array after applying the swapaxes function:')
print(swapped_array)

输出

The original array:
[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]]


The array after applying the swapaxes function:
[[[0 4]
  [2 6]]

 [[1 5]
  [3 7]]]
numpy_array_manipulation.htm
广告