Python 将笛卡尔索引转换为矩阵索引的方法,如在numpy.meshgrid中

Python 将笛卡尔索引转换为矩阵索引的方法,如在numpy.meshgrid中,python,numpy,Python,Numpy,我正在构建一些软件,其中包括使用和矩阵索引创建的网格网格(即设置index=`ij`)。但是,我正在使用的函数可能会采用使用笛卡尔索引创建的网格网格(即设置index=`xy`)。从索引=`xy`到索引=`ij`,有没有快速的方法。当它只是二维的时候,我可以简单地转置。然而,当我升级到3D、4D等时,换位就不起作用了 索引仅影响前两个轴的顺序。可用于颠倒顺序: In [106]: I,J,K,L = np.meshgrid([1,2,3],['A','B'],[10,20,30,40],['X'

我正在构建一些软件,其中包括使用和矩阵索引创建的网格网格(即设置
index=`ij`
)。但是,我正在使用的函数可能会采用使用笛卡尔索引创建的网格网格(即设置
index=`xy`
)。从
索引=`xy`
索引=`ij`
,有没有快速的方法。当它只是二维的时候,我可以简单地转置。然而,当我升级到3D、4D等时,换位就不起作用了

索引
仅影响前两个轴的顺序。可用于颠倒顺序:

In [106]: I,J,K,L = np.meshgrid([1,2,3],['A','B'],[10,20,30,40],['X','Y','Z'], indexing='ij')

In [107]: X,Y,Z,W = np.meshgrid([1,2,3],['A','B'],[10,20,30,40],['X','Y','Z'], indexing='xy')

In [108]: (I.swapaxes(0,1) == X).all()
Out[108]: True

In [109]: (J.swapaxes(0,1) == Y).all()
Out[109]: True

In [110]: (K.swapaxes(0,1) == Z).all()
Out[110]: True

In [111]: (L.swapaxes(0,1) == W).all()
Out[111]: True
swapax(0,1)
也将
xy
转换为
ij
索引(当然):

In [112]: (X.swapaxes(0,1) == I).all()
Out[112]: True