首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python如何沿中心旋转三维数组

python如何沿中心旋转三维数组
EN

Stack Overflow用户
提问于 2022-06-14 21:17:59
回答 1查看 101关注 0票数 -1

我需要转换以下三维数组。我需要第一列变成第一列,第二列变成第二列,第三列变成第三列。

代码语言:javascript
复制
 3  4  5       4  7  3
 7  1  2   =>  5  1  4
 4  5  6       6  2  5  

 6  7b 1       7b 3 6 
 3  4  5   =>  1  4 7b
 7b 1  2       2  5 1 

这个工作的print(np.rot90(r[6], 3)),但只在2d数组,我需要它在一个三维数组,我需要它为这个数组工作。

代码语言:javascript
复制
[[['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']]]
EN

回答 1

Stack Overflow用户

发布于 2022-06-14 21:41:43

np.rot90似乎在内部使用np.transpose ,因此我们可以直接在您的情况下使用np.transpose。IIUC,您可以将数组转到第2和第3维,然后根据需要将它们反转:

代码语言:javascript
复制
a.transpose([0, 2, 1])[:, :, ::-1]

# [[['7b' '3' '6']
#   ['1' '4' '7b']
#   ['2' '5' '1']]
# 
#  [['4' '7' '3']
#   ['5' '1' '4']
#   ['6' '2' '5']]
# 
#  [['1' '4s' '7']
#   ['2' '5' '1']
#   ['3' '6' '2']]]

它将得到与np.rot90相同的结果,这与@Szczesny in the comments解释得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72623471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档