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

文章目录

    • [1. numpy.rot90() 语法](#1. numpy.rot90() 语法)
    • [2. 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() 举例说明

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

python 复制代码
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度。

输出结果如下:

python 复制代码
原始三维数组:
[[[ 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 参数值对旋转结果的影响:

python 复制代码
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)

输出结果:

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

 [[6 8]
  [5 7]]]

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

 [[7 5]
  [8 6]]]

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

相关推荐
数据智能老司机5 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机6 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机6 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机6 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i7 小时前
drf初步梳理
python·django
每日AI新事件7 小时前
python的异步函数
python
这里有鱼汤8 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook17 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室17 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三19 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试