【问题标题】:How to create matrix of points by X, Y coordinate in Python?如何在 Python 中通过 X、Y 坐标创建点矩阵?
【发布时间】:2016-02-16 04:35:36
【问题描述】:

我有: X 最小值、Y 最小值和 X 最大值、Y 最大值。 需要在此边界中的点之间创建距离为 2000.0 m 的点的网格。

我的代码:

while minY < maxY:
    minY += 2000.0
        while minX < maxX:
            minX += 2000.0
            X.append(minX)
            Y.append(minY)
     X.append(minX)
     Y.append(minY)

给了我:X 的 1 行(从最小值到最大值)和 Y () 的 1 个冒号 Xmax - 最后一个 X。

请帮我创建点/网格行。

【问题讨论】:

  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布代码并准确描述问题之前,我们无法有效地帮助您。你对这个结果有什么期望?请以 Python 术语显示。如果把这个矩阵网格打印出来,输出是怎么出现的?

标签: python point mesh


【解决方案1】:

我怀疑这段代码可以满足您的需要。但是,您可能需要通过一些基本的 Python 教程 (https://docs.python.org/2/tutorial/) 来帮助您入门。

import numpy as np
# define the lower and upper limits for x and y
minX, maxX, minY, maxY = 0., 20000., 10000., 50000.
# create one-dimensional arrays for x and y
x = np.linspace(minX, maxX, (maxX-minX)/2000.+1)
y = np.linspace(minY, maxY, (maxY-minY)/2000.+1)
# create the mesh based on these arrays
X, Y = np.meshgrid(x, y)

如果您需要将网格置于一维数组中,您可以对其进行整形:

X = X.reshape((np.prod(X.shape),))
Y = Y.reshape((np.prod(Y.shape),))

然后您可以轻松地将它们压缩到

coords = zip(X, Y)

【讨论】:

  • 好的,但是在此之后很难创建一对 X、Y 坐标来创建点。 (坐标 = zip(X, Y))。
  • 是否可以只使用嵌套循环?
  • @Julien 我在使用 meshgrid() 时遇到内存错误,因为数据量很大,(1977435, 1977435)。你能帮忙解决一下吗?
猜你喜欢
  • 2021-04-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
相关资源
最近更新 更多