如何使用未知数组维度

时间:2018-06-14 14:17:25

标签: python arrays numpy indexing scipy

我有一个索引元组列表,用于前两个数组条的所有维度。

对于每个索引元组,我想在此元组位置返回一个数组的片段。

我事先并不知道数组中的维数,或者等价于索引元组中元素的数量。

例如,如果索引元组中有两个元素(pos),我会写一些类似的东西:

arr[:, :, pos[0], pos[1]]

返回此位置的数组切片。我希望能够在不事先知道pos的长度的情况下做到这一点。天真地,我认为arr[:, :, *pos]会起作用,但当然它不会。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将Ellipsis与您的元组p连接起来,以获取可用于对数组进行切片的元组Ep

Ep = (Ellipsis,)+p
sliced_arr = arr[Ep]

编辑:赞美上一个答案(已被删除)提及Ellipsis,这实际上是我答案的一半。