Python 一般维数的多维网格

Python 一般维数的多维网格,python,numpy,multidimensional-array,Python,Numpy,Multidimensional Array,我需要为具有一般/可变维数的数组生成网格。在2D情况下,我知道我可以使用: 当维度的数量可变时,如何扩展此方法?Ie:我的数据可以是(x,y)或(x,y,z)或(x,y,z,q),等等 天真的做法是: # Md_data.shape = (M, N), for M dimensions dmin, dmax = np.amin(Md_data, axis=1), np.amax(Md_data, axis=1) Md_grid = np.mgrid[dmin:dmax:10j] 不起作用。我们

我需要为具有一般/可变维数的数组生成网格。在2D情况下,我知道我可以使用:

当维度的数量可变时,如何扩展此方法?Ie:我的数据可以是
(x,y)
(x,y,z)
(x,y,z,q)
,等等

天真的做法是:

# Md_data.shape = (M, N), for M dimensions
dmin, dmax = np.amin(Md_data, axis=1), np.amax(Md_data, axis=1)
Md_grid = np.mgrid[dmin:dmax:10j]

不起作用。

我们可以使用一个列表理解循环遍历变量列表:
x、y、z、q等。
创建切片符号,然后简单地将其馈送到
mgrid
-

L = [x,y,z,q] # list of variables
out = np.mgrid[[np.s_[A.min():A.max():10j] for A in L]]
使用
切片
构造函数:

np.mgrid[[slice(A.min(),A.max(),10j) for A in L]]
np.mgrid[[slice(A.min(),A.max(),10j) for A in L]]