gpt4 book ai didi

python - 如何在python中生成n维网格

转载 作者:太空狗 更新时间:2023-10-30 02:26:14 24 4
gpt4 key购买 nike

我想生成一个 n 维网格。

对于 3D 网格,我有以下工作代码(它在 (-1,1) 之间创建一个 5X5X5 的网格

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。在我看来,这更简洁:

grid= np.mgrid[ step-1 : 1.0: step * 2,
step-1 : 1.0: step * 2,
step-1 : 1.0: step * 2]

剖析上面的代码片段,我们看到 step-1 : 1.0: step * 2 定义了一个切片,并用 , 将它们分开,创建了一个包含三个切片的元组,这传递给 np.mgrid.__getitem__

我们可以通过构建 n 切片的元组将其推广到 n 维度:

n = 3
grid= np.mgrid[tuple(slice(step - 1, 1, step * 2) for _ in range(n))]

关于python - 如何在python中生成n维网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45583274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com