访问多维数组中的坐标 - python

时间:2013-11-28 06:55:32

标签: python arrays multidimensional-array indexing coordinates

我希望将坐标网格的x和y值放入各自独立的数组中,以执行Pythagoras等功能。 这是我的代码。

x1d = np.linspace(-xlen,xlen,res)
y1d = np.linspace(-ylen,ylen,res)
from itertools import product
coordinates = list(product(x1d, y1d))
xcoord = coordinates[:][:][0]

print np.shape(coordinates), np.shape(xcoord), coordinates

我知道以下代码会给我

coordinates = [[x1,y1],[x2,y2],...,[xn,yn]].

如何提取以下数组?

xcoord = [x1,x2,...,xn]
ycoord = [x1,x2,...,xn]

这是否是生成点网格的正确解决方案,我可以在每个x,y点上执行函数,为这一点指定结果值?

谢谢!

2 个答案:

答案 0 :(得分:2)

您还可以使用itertools获取x和y值:

import itertools
x,y=itertools.izip(*coordinates)

# x=(x1,x2,...,xn)
# y=(y1,y2,...,yn)

关于网格,请查看numpy的meshgrid,它可能对您有用。您可以像这样使用它(取自链接网站上的示例):

x=np.arange(-5,5,.1)

y=np.arange(-5,5,.1)

xx,yy=meshgrid(x,y,sparse=True)

xx,yy=np.meshgrid(x,y,sparse=True)

z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)

h = plt.contourf(x,y,z)

Numpy's meshgrid

答案 1 :(得分:0)

将其作为普通列表处理,您可以使用列表解析:

xcord, ycord = [e[0] for e in coordinates], [e[1] for e in coordinates]

希望这有帮助!

相关问题