【问题标题】:Accessing coordinates within multidimensional arrays - python访问多维数组中的坐标 - python
【发布时间】:2013-12-14 02:30:40
【问题描述】:

我希望将坐标网格的 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 点执行功能,并为该点分配结果值吗?

谢谢!

【问题讨论】:

标签: python arrays multidimensional-array indexing coordinates


【解决方案1】:

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

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • @Shivan 为什么不呢?如果我这样做 x,y=itertools.izip(zip(range(10),range(10,20)) 我会得到 x=(0,1,2,...)y=(10,11,...) 我认为这是被问到的......
  • @Shivan 我在它周围添加了一些词......我希望现在更清楚
【解决方案2】:

将其视为普通列表,您可以使用列表推导:

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    相关资源
    最近更新 更多