首页 > 解决方案 > 向量化在 Numpy 中的多维数组中查找点集的中心

问题描述

我有一个多维数组,它有 100 万组 3 个点,每个点都是由 x 和 y 指定的坐标。调用这个数组pointVec,我的意思是

np.shape(pointVec) = (1000000,3,2)

我想找到每组 3 个点的中心。一种明显的方法是遍历所有 100 万个集合,在每次迭代中找到每个集合的中心。但是,我听说矢量化是 Numpy 的强项,所以我正在尝试使其适应这个问题。由于这个问题非常适合迭代,所以我不知道如何使用矢量化来解决这个问题,或者使用矢量化是否有用。

标签: pythonnumpyvectorizationnumpy-ndarray

解决方案


这取决于您如何定义三点的中心。但是,如果它是平均坐标,如评论中提到的@Quang,您可以在 numpy 中沿特定轴取平均值:

pointVec.mean(1)

这将沿axis = 1(这是具有3个点的第二个轴)取平均值并返回一个(1000000,2)形状的数组。


推荐阅读