我该如何简化:
import numpy as np
ex = np.arange(27).reshape(3, 3, 3)
def get_plane(axe, index):
return ex.swapaxes(axe, 0)[index] # is there a better way ?
我找不到numpy函数来获取高维数组中的平面,有吗?
该ex.take(index, axis=axe)
方法很棒,但是它复制了数组而不是提供我最初想要的视图。
那么,索引(不复制)第n个维数组以获取带有索引和轴的二维切片的最短方法是什么?
受此答案启发,您可以执行以下操作:
def get_plane(axe, index):
slices = [slice(None)]*len(ex.shape)
slices[axe]=index
return ex[tuple(slices)]
get_plane(1,1)
输出:
array([[ 3, 4, 5],
[12, 13, 14],
[21, 22, 23]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句