我希望将坐标网格的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点上执行函数,为这一点指定结果值?
谢谢!
答案 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)
答案 1 :(得分:0)
将其作为普通列表处理,您可以使用列表解析:
xcord, ycord = [e[0] for e in coordinates], [e[1] for e in coordinates]
希望这有帮助!