我正在尝试使用numpy.mgrid创建两个网格数组,但我希望可以插入一个变量作为步数。
如果没有可变步数,numpy.mgrid将按照以下代码的预期工作:
x, y = np.mgrid[0:1:3j, 0:2:5j]
但是,我希望得到像这样的内容,因为我无法在生成网格数组的代码行中明确地声明步骤编号(由于脚本中的其他进程可能会更改值):
num_x_steps = 3
num_y_steps = 5
x, y = np.mgrid[0:1:(num_x_steps)j, 0:2:(num_y_steps)j] #Try convert to complex
有没有一种方法可以返回与第一种方法等效的结果?
我尝试过使用括号和一些其他修改来运行我的三行代码,但是似乎没有什么作用。
注意:我尝试阅读这个主题,但我不确定那个主题是否适用于这个问题;我不太理解正在被问及的内容或者如何回答它。(另外,我尝试运行答案中的代码行,但它返回了MemoryError。)如果说该主题回答了我的问题,请有人解释一下它,并说明它如何适用于我的问题吗?
mgrid
中使用3j
是一种符号技巧。在内部,它会检查切片步长是否为复数(数学上的虚数),并进行一些数学计算,将其视为计数而不是通常的arange
步长。 - hpaulj