在Python中将区域中的坐标转换为numpy数组

时间:2017-03-30 09:07:23

标签: python arrays numpy

我有一个矩形区域,左下角(分钟)和右上角(最大)坐标。我想制作一个由该区域坐标组成的Numpy数组。例如,min和max分别是(3,8)和max(0,6)。我要做的numpy数组是

enter image description here

此外,我要求区域中的网格可能小于1.例如,0.5使X = [[3.0,0] [3.5,0] [4.0,0] [4.5,0]。 ..]

1 个答案:

答案 0 :(得分:3)

你可以use numpy.mgrid

>>> numpy.mgrid[3:8, 0:6].T
array([[[3, 0],
        [4, 0],
        [5, 0],
        [6, 0],
        [7, 0]],

       [[3, 1],
        [4, 1],
        [5, 1],
        [6, 1],
        [7, 1]],

        ...

       [[3, 5],
        [4, 5],
        [5, 5],
        [6, 5],
        [7, 5]]])

如果你想要一个"平坦的"元组数组,你可以重塑它:

>>> numpy.mgrid[3:8, 0:6].T.reshape((-1, 2))
array([[3, 0],
       [4, 0],
       [5, 0],
       [6, 0],
       [7, 0],
       [3, 1],
       ...
       [6, 5],
       [7, 5]])