You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python NumPy如何对三维数组沿中心执行rot90旋转变换

NumPy三维数组批量应用二维切片旋转方案

核心实现

不需要写循环逐一切片处理,np.rot90原生支持高维数组批量操作,只要通过axes参数指定旋转作用的二维平面对应的轴即可。
针对你形状为(n, 3, 3)的三维数组,所有二维切片分布在后两个维度(行轴=1,列轴=2),直接传入axes=(1,2)参数,就能一次性对所有切片执行和单切片np.rot90(slice, 3)完全一致的变换:

import numpy as np

# 这里替换成你的目标三维数组
arr = np.array([
    [['6', '7b', '1'],
     ['3', '4', '5'],
     ['7b', '1', '2']],
    [['3', '4', '5'],
     ['7', '1', '2'],
     ['4', '5', '6']],
    [['7', '1', '2'],
     ['4s', '5', '6'],
     ['1', '2', '3']]
])

# 批量旋转所有二维切片
result = np.rot90(arr, k=3, axes=(1, 2))

效果核对

执行后输出的result和你给出的变换规则完全匹配:

  • 第一个原切片旋转结果为[['7b' '3' '6'], ['1' '4' '7b'], ['2' '5' '1']],和示例一致
  • 第二个原切片旋转结果为[['4' '7' '3'], ['5' '1' '4'], ['6' '2' '5']],和示例一致
  • 第三个原切片旋转结果为[['4s' '1' '7'], ['2' '5' '1'], ['3' '6' '2']],符合同等变换逻辑

补充说明

  • 单二维数组调用np.rot90(arr, 3)时,默认操作的是(0,1)轴,对应二维数组的行、列维度
  • 三维数组场景下指定axes=(1,2),就是告诉函数只在每个切片的行、列构成的平面上做旋转,沿第0轴的切片维度保持不变,自动批量完成所有切片处理,运行效率比手写Python循环高1~2个数量级。

内容的提问来源于stack exchange,提问作者user2315546

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:01:06