假设我有一个带有形状numpy的A数组(5,24,1)。
我想沿着axis = 0采取五个单独的转座子,这样在转座子之后的形状是(5,1,24)。
我如何使用一些numpy函数来完成这个任务?
发布于 2017-09-03 14:54:47
可建议采取三种办法-
A.swapaxes(1,2)
A.transpose(0,2,1)
np.rollaxis(A,2,1)对于swapaxes和transpose,请跟随他们的文档。
使用np.rollaxis,我们正在滚动轴将第三轴带到第二位置,从而将第二轴推到第三轴位置。链接文档中的更多信息。
利用最后一个轴是单轴-
A[:,None,:,0]发布于 2017-09-03 15:04:46
您可以使用np.moveaxis ( Divakars优秀答案中缺少的一个选项)来定义应该移动哪个轴:
np.moveaxis(A, (0, 1, 2), (0, 2, 1))这将轴0移动到0 (没有更改,也可以省略),将1移动到2,将2移动到1。这基本上就是交换轴1和2。
>>> A = np.ones((5,24,1))
>>> res = np.moveaxis(A, (1, 2), (2, 1)) # this time without the zeros
>>> res.shape
(5, 1, 24)https://stackoverflow.com/questions/46024628
复制相似问题