I have a 3d numpy array, eg:
>>> A = np.arange(24).reshape(2,3,4)
我想基于轴1和轴2的一对坐标,沿轴0获取1d切片:
>>> h = 1
>>> l = 2
>>> A[:,h,l]
array([ 6, 18])
目前为止一切顺利。但是,如果我的坐标对以元组或列表的形式存储,而不是两个整数,该怎么办呢?我尝试了一些显而易见的选项,但都没有成功:
>>> coords = (1,2)
>>> A[coords]
array([20, 21, 22, 23])
>>> A[:,coords]
array([[[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> A[...,coords]
array([[[ 1, 2],
[ 5, 6],
[ 9, 10]],
[[13, 14],
[17, 18],
[21, 22]]])
我在谷歌上搜索了这个问题,但没有找到相关的内容。可能是因为我使用的关键词不当。如果这是一个过于简单的问题,那么请见谅!
h,l = coords
(注意,此时coords
可能是二维的)。或者我是否误解了问题? - Joe Kington