向量化 Numpy 中多维数组中点集的查找中心
Vectorize finding center of sets of points in multidimensional array in Numpy
我有一个多维数组,它有 100 万组 3 点,每个点都是由 x 和 y 指定的坐标。调用这个数组pointVec,我的意思是
np.shape(pointVec) = (1000000,3,2)
我想找到每组 3 个点的中心。一种明显的方法是遍历所有 100 万个集合,在每次迭代中找到每个集合的中心。但是,我听说矢量化是 Numpy 的强项,所以我正在尝试使其适应这个问题。由于这个问题非常符合迭代的直觉,我不知道如何用矢量化来解决这个问题,或者使用矢量化是否有用。
这取决于您如何定义 three-point 的中心。但是,如果是平均坐标,就像评论中提到的@Quang,你可以在numpy中沿特定轴取平均值:
pointVec.mean(1)
这将取沿 axis=1 的平均值(这是具有 3 个点的第二个轴)和 return 一个 (1000000,2) 形状的数组。
我有一个多维数组,它有 100 万组 3 点,每个点都是由 x 和 y 指定的坐标。调用这个数组pointVec,我的意思是
np.shape(pointVec) = (1000000,3,2)
我想找到每组 3 个点的中心。一种明显的方法是遍历所有 100 万个集合,在每次迭代中找到每个集合的中心。但是,我听说矢量化是 Numpy 的强项,所以我正在尝试使其适应这个问题。由于这个问题非常符合迭代的直觉,我不知道如何用矢量化来解决这个问题,或者使用矢量化是否有用。
这取决于您如何定义 three-point 的中心。但是,如果是平均坐标,就像评论中提到的@Quang,你可以在numpy中沿特定轴取平均值:
pointVec.mean(1)
这将取沿 axis=1 的平均值(这是具有 3 个点的第二个轴)和 return 一个 (1000000,2) 形状的数组。