使用容器(例如元组或列表)进行Numpy切片



我正在尝试切片nDnumpy.ndarray。为了简单起见,假设它是3D(但实际上它可能是4D5D等(,并且由nxnynz维度组成。

我想提取给定点nynz的所有nx行,使用容器(例如元组或列表(来选择nynz

示例:

假设我有一个3D数组X,维度为:(46841212820(,并且我有container = (127,11)

所需解决方案:

x_selected = X[:,container]

其中x_selected应当具有尺寸(46841,(

x_selected = X[(slice(None),) + container]

因此,您可以使用任何包含slices和整数混合物的元组为X数组编制索引。slice只是这里描述的一个纯python对象。此用于索引的元组的元素数不应超过X数组的维度。

您可以使用以下内容:

x_selected=X[:,container[0],container[1]]

我试过这个:

A=np.zeros((3,5,7))
A[1,2,:].shape

我得到(7,(作为输出

最新更新