在Numpy中对多维数组中的点集进行向量化查找

问题描述

我有一个多维数组,其中包含100万个3个点的集合,每个点都是由x和y指定的坐标。将该数组称为pointVec,我的意思是

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

我想找到3个点的每一个的中心。一种明显的方法是遍历所有100万个集合,并在每次迭代时找到每个集合的中心。但是,我听说矢量化是Numpy的强项,因此我正在尝试使其适应此问题。由于此问题非常直观地适合于迭代,因此我不了解如何使用矢量化处理,或者使用矢量化甚至没有用。

解决方法

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

pointVec.mean(1)

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