我想生成一个n维网格。如何在python中生成一个n维网格
对于3D网格,我有以下工作代码(产生5×5×的(-1,1)
import numpy as np
subdivision = 5
step = 1.0/subdivision
grid= np.mgrid[ step-1 : 1.0-step: complex(0, subdivision),
step-1 : 1.0-step: complex(0, subdivision),
step-1 : 1.0-step: complex(0, subdivision)]
之间的网格我想概括这N维 所以像
grid = np.mgrid[step-1 : 1.0-step: complex(0,subdivision) for i in range(n)]
但是这显然行不通。 我也试过
temp = [np.linspace(step-1 , 1.0-step, subdivision) for i in range(D)]
grid = np.mgrid[temp]
但是这不起作用,因为np.mgrid
接受切片
使用'complex'的原因是什么?随着你的3D代码,我得到3x5x5x5。这是打算? – kazemakase
@kazemakase从文档:“但是,如果步长是一个复数(例如5j),那么其大小的整数部分被解释为指定在开始和停止值之间创建的点的数量,其中停止值*包含*。“。当使用非复数时,停止值是独占的。 – Evert
@Evert哦,谢谢,我不知道这一点。看起来像一个模糊的功能... – kazemakase