numpy:获取网格中的平方坐标

3 投票
3 回答
1771 浏览
提问于 2025-04-17 20:20

在Python中,使用numpy库,我可以生成一个网格。

import numpy as np
import matplotlib.pyplot as plt

def main():
    x = np.linspace(0, 10, 4)
    y = np.linspace(0, 10, 4)

    x,y = np.meshgrid(x,y)
    print x,y

if __name__ == '__main__':
    main()

然后我得到:

[[  0.           3.33333333   6.66666667  10.        ]
 [  0.           3.33333333   6.66666667  10.        ]
 [  0.           3.33333333   6.66666667  10.        ]
 [  0.           3.33333333   6.66666667  10.        ]]
[[  0.           0.           0.           0.        ]
 [  3.33333333   3.33333333   3.33333333   3.33333333]
 [  6.66666667   6.66666667   6.66666667   6.66666667]
 [ 10.          10.          10.          10.        ]]

我该如何获取网格中的元素(方块),以及它们的顶点呢?

举个例子:左上角的方块有这些顶点:

(0, 0)   (0,3.3)
(3.3,0)  (3.3, 3.3)

3 个回答

-1

可以查看一下关于 numpy.ix_ 的文档。

1

这句话的意思是,下面这个代码有点晚了,代码是np.hstack((x.reshape((x.size,1)),y.reshape((y.size,1))))

3

我认为应该是这样的:

np.dstack([x,y])[row:row+2, col:col+2, :]

这里的 row, col 是那个方块左上角的坐标。显然,这个方法在最后一行或最后一列是行不通的。

撰写回答