我希望将坐标网格的x和y值放入它们自己的独立数组中,以便执行诸如毕达哥拉斯等函数。
下面是我的代码。

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点执行函数,并为该点分配一个结果值?
谢谢!

最佳答案

您还可以使用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)

10-06 05:19
查看更多