首页 > 解决方案 > 如何在numpy中通过长度和宽度一维数组获取二维地图矩阵?

问题描述

我可以在 numpy 中找到一个函数,实现通过长度和宽度数组生成二维地图矩阵吗

例如矩形的长宽数组:

length_point =[1, 2, 3]
width_point =[4, 5]

shape_length=(n,) shape_width=(m, )

则得到result_shape=(n*m, 2),结果中的点对代表矩形中的点,就像地图中的经纬度一样

result_point =[[1, 4], 
               [1, 5], 
               [2, 4], 
               [2, 5], 
               [3, 4], 
               [3, 5]]

标签: pythonnumpy

解决方案


一种可能的方法,它涉及三个 Numpy 函数,因此可能不是您想要的,但它仍然可以完成工作:

>>> np.column_stack((np.repeat(length_point, len(width_point)),
                     np.tile(width_point, len(length_point))))
array([[1, 4],
       [1, 5],
       [2, 4],
       [2, 5],
       [3, 4],
       [3, 5]])

repeat重复元素,而tile重复数组,并且column_stack用于生成所需的连接。


推荐阅读