考虑以下来自np.meshgrid docs的示例:
nx, ny = (3, 2)
x = np.linspace(0, 1, nx)
y = np.linspace(0, 1, ny)
xv, yv = np.meshgrid(x, y)
在我的应用程序中,我有25个变量而不是x
和y
。要从25个变量中创建网格,一种方法是:
v1 = np.linspace(0, 1, 10)
v2 = np.linspace(0, 1, 10)
...
v25 = np.linspace(0, 1, 10)
z_grid = np.meshgrid(v1, v2, ..., v25)
但是,代码看起来很丑陋,而不是带有变量数量的模块化(因为每个变量都是硬编码的)。因此,我对以下内容感兴趣:
n_variables = 25
z = np.array([np.linspace(0, 1, 10)] * n_variables)
z_grid = np.dstack(np.meshgrid(z))
但是,我猜meshgrid(z)
这不是正确的调用,我应该扩展z
到n_variables
数组。关于如何将2D数组扩展为多个1D数组的任何想法?
这应该做到。
n_variables = 25
z = np.array([np.linspace(0, 1, 10)] * n_variables)
z_grid = np.dstack(np.meshgrid(*z))
列表前的*运算符可解压缩列表元素。考虑以下:
v1 = {1,2,3}
v2 = {4,5,6}
list_of_v = {v1,v2}
some_fucntion(v1,v2) == some_function(*list_ov_v)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句