创建和使用坐标网格

时间:2013-07-24 15:27:36

标签: python numpy

任何人都可以帮助我 - 有没有办法将坐标网格创建为像这样的numpy数组?

(0,0) (0,1) (0,2) ... (0,n)
(1,0) (1,1) (1,2) ... (1,n)
...........................
(m,0) (m,1) (m,2) ... (m,n)

如果是,我怎样才能找到从每个点到中心的距离(中心位于(m / 2,n / 2)和半径R?

(x - m/2)^2 + (y - n/2)^2 - R^2 = ?

1 个答案:

答案 0 :(得分:4)

执行此操作的标准方法是使用meshgrid功能。它创建了两个数组,包含您想要的点的xy坐标。要获得问题中显示的坐标,您可以

import numpy as np
x = np.arange(m+1)
y = np.arange(n+1)
X, Y = np.meshgrid(x, y)

然后计算你想要的距离

np.sqrt((X - m/2.)**2 + (Y - n/2.)**2) - R

有关meshgrid的详细信息,请参阅文档 http://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html

此外,如果您希望两个端点之间的值间隔均匀,而不是0m0n,请考虑使用linspace函数