我正在尝试为需要和理解距离的算法创建一个坐标网格。我知道如何做到这一点已知的维数 - 像这样的2D:用Python创建一个N维网格
x = [0,1,2]
y = [10,11,12]
z = np.zeros((3,3,2))
for i,X in enumerate(x):
for j,Y in enumerate(y):
z[i][j][0] = X
z[i][j][1] = Y
print(z)
--------------------------
array([[[ 0., 10.],
[ 0., 11.],
[ 0., 12.]],
[[ 1., 10.],
[ 1., 11.],
[ 1., 12.]],
[[ 2., 10.],
[ 2., 11.],
[ 2., 12.]]])
这工作得很好。我最终得到(3,3,2)的形状,其中2是该点坐标的值。我试图用它来创建一个概率曲面,所以我需要能够让每个点都是它自己的“位置”值。有没有一种方法可以轻松地将其扩展到N维?在那里,我会有一个未知数的for循环。由于项目限制,我可以访问Python内置函数和numpy,但这或多或少。
我试过np.meshgrid(),但它会产生(2,3,3)的输出形状,而我尝试重塑它却从不给我正确顺序的坐标。关于如何干净地做这件事的任何想法?
通过'N'你的意思数量数组?例如,在示例中,您有两个数组,因此它是二维的? – Divakar
也许这就是你要找的东西:[xarray](http://xarray.pydata.org/en/stable/) – skrubber
@Divakar By N - 我的意思是一个用户打算放入一些数据矩阵,但是很多列将会是N.所以如果他们有8列数据,我需要一个8维网格。 – Zach