【发布时间】:2012-06-14 17:33:09
【问题描述】:
我是 numpy 的新手,我正在尝试找到一种 Pythonic :) 方法来生成规则的 3D 点网格。
使用 numpy,ndindex 函数几乎可以满足我的要求,但我认为它只适用于整数。
import numpy as np
ind=np.ndindex(2,2,1)
for i in ind:
print(i)
>>>(0, 0, 0)
(0, 1, 0)
(1, 0, 0)
(1, 1, 0)
我基本上想要同样的东西,但使用浮点数来定义值。
我定义了一个盒子的尺寸以及 x、z 和 z 细分的数量。
让我们从创建 x、y 和 z 维线性空间开始。
import numpy as np
corner1 = [0.0, 0.0, 0.0]
corner2 = [1.0, 1.0, 1.0]
nx, ny, nz = 5, 3, 7
xspace = np.linspace(corner1[0], corner2[0], nx)
yspace = np.linspace(corner1[1], corner2[1], ny)
zspace = np.linspace(corner1[2], corner2[2], nz)
现在,我应该如何组合这些来为我提供网格中所有点的数组? 感谢您的时间!
【问题讨论】:
-
@mgilson,我认为 feedMe 的要求可能略有不同;
ndindex返回一个生成器,而不是一个数组。但问题并不是 100% 清楚。 -
抱歉,如果您发现我的问题不清楚。接下来我需要阅读生成器。
标签: python multidimensional-array numpy grid points