Python:numpy.rot90() 三维矩阵绕着某一轴旋转

文章目录

    • 1. numpy.rot90() 语法
    • 2. numpy.rot90() 举例说明
    • 3.axes说明

  在NumPy中,可以使用 numpy.rot90() 函数对三维矩阵绕着某个轴旋转。

1. numpy.rot90() 语法

numpy.rot90(m, k=1, axes=(0, 1)).

  • m: 输入的数组。
  • k: 旋转的次数,默认为1。
  • axes: 旋转的轴,默认为(0, 1)。旋转方向:是从第一轴到第二轴

2. numpy.rot90() 举例说明

下面是一个具体的例子,演示如何在三维矩阵上绕着某个轴旋转:

import numpy as np

# 创建一个三维数组
matrix_3d = np.array([[[1, 2, 3], [4, 5, 6]],
                      [[7, 8, 9], [10, 11, 12]],
                      [[13, 14, 15], [16, 17, 18]]])

# 使用 rot90 函数绕着第三个轴逆时针旋转90度
result_3d = np.rot90(matrix_3d, k=1, axes=(2, 0))

# 输出原始三维数组和旋转后的数组
print("原始三维数组:")
print(matrix_3d)

print("\n绕着第三个轴逆时针旋转90度后的数组:")
print(result_3d)

这里的 axes=(2, 0) 表示绕着第三个轴逆时针旋转(z轴到x轴:)90度。

输出结果如下:

原始三维数组:
[[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]

 [[13 14 15]
  [16 17 18]]]

绕着第三个轴逆时针旋转90度后的数组:
[[[ 1  7 13]
  [ 4 10 16]]

 [[ 2  8 14]
  [ 5 11 17]]

 [[ 3  9 15]
  [ 6 12 18]]]

通过指定 k 参数,还可以实现不同次数的旋转。

3.axes说明

  axes 参数用于指定绕着哪两个轴进行旋转。在三维矩阵中,通常有三个轴:0、1、2。这些轴分别对应数组的三个维度x,y,z。

  考虑一个三维矩阵 arr,其形状为 (n, m, p),其中 n、m、p 分别是矩阵在三个维度上的大小。axes 参数是一个包含两个元素的元组,用于指定旋转操作涉及的两个轴。

  例如,axes=(1, 2) 表示绕着第一个轴旋转,方向为第二个轴到第三个轴

下面是一个例子,演示了不同 axes 参数值对旋转结果的影响:

import numpy as np

arr = np.array([[[1, 2], [3, 4]],
                [[5, 6], [7, 8]]])

# 默认情况下,绕着前两个轴 (0, 1) 逆时针旋转90度
result_default = np.rot90(arr)
print("默认情况下绕着前两个轴逆时针旋转90度:")
print(result_default)

# 指定 axes=(0, 2),绕着第一个轴和第三个轴逆时针旋转90度
result_axes_0_2 = np.rot90(arr, axes=(0, 2))
print("\n指定 axes=(0, 2),绕着第一个轴和第三个轴逆时针旋转90度:")
print(result_axes_0_2)

输出结果:

默认情况下绕着前两个轴逆时针旋转90度:
[[[2 4]
  [1 3]]

 [[6 8]
  [5 7]]]

指定 axes=(0, 2),绕着第一个轴和第三个轴逆时针旋转90度:
[[[3 1]
  [4 2]]

 [[7 5]
  [8 6]]]

通过调整 axes 参数,你可以控制旋转的轴,从而影响旋转结果。

你可能感兴趣的:(python,学习,python,矩阵,开发语言)