[英]Index Numpy array dimensions with tuple
我有一个 numpy 数组,例如arr = np.arange(16).reshape(2,2,2,2)
当我将(dim2, dim3)
作为元组时arr[:, dim2, dim3]
我想动态访问arr[:, dim2, dim3]
。 做这个的最好方式是什么?
如果您的数组的维数可能不同,请尝试以下操作:
some_tuple = (dim2, dim3) # Could be (dim2, dim3, ..., dimN)
arr[(slice(None),) + some_tuple]
在这种特殊情况下, (slice(None),) + some_tuple
与(slice(None), dim2, dim3)
。 slice(None)
或多或少等同于“ :
”,但它可以用在比“ :
”更多的地方。 请注意,我将slice(None)
放在单元素元组中(即(slice(None),)
),以便我可以将其添加到some_tuple
。 还要注意slice(None)
之后有一个逗号,即,我不只是写(slice(None))
没有逗号。 如果没有额外的逗号,它将无法工作。
some_tuple = (dim2, dim3) arr[:, some_tuple[0], some_tuple[1]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.