首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转置三维numpy阵列

转置三维numpy阵列
EN

Stack Overflow用户
提问于 2017-09-03 14:51:24
回答 2查看 102关注 0票数 1

假设我有一个带有形状numpyA数组(5,24,1)

我想沿着axis = 0采取五个单独的转座子,这样在转座子之后的形状是(5,1,24)

我如何使用一些numpy函数来完成这个任务?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-03 14:54:47

可建议采取三种办法-

代码语言:javascript
复制
A.swapaxes(1,2)
A.transpose(0,2,1)
np.rollaxis(A,2,1)

对于swapaxestranspose,请跟随他们的文档。

使用np.rollaxis,我们正在滚动轴将第三轴带到第二位置,从而将第二轴推到第三轴位置。链接文档中的更多信息。

利用最后一个轴是单轴-

代码语言:javascript
复制
A[:,None,:,0]
票数 3
EN

Stack Overflow用户

发布于 2017-09-03 15:04:46

您可以使用np.moveaxis ( Divakars优秀答案中缺少的一个选项)来定义应该移动哪个轴:

代码语言:javascript
复制
np.moveaxis(A, (0, 1, 2), (0, 2, 1))

这将轴0移动到0 (没有更改,也可以省略),将1移动到2,将2移动到1。这基本上就是交换轴1和2。

代码语言:javascript
复制
>>> A = np.ones((5,24,1))
>>> res = np.moveaxis(A, (1, 2), (2, 1))   # this time without the zeros
>>> res.shape
(5, 1, 24)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46024628

复制
相关文章

相似问题

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