首页 > 解决方案 > np.mean() 给出错误的平均值?

问题描述

我很难计算每列二维 numpy 数组的平均值。两个数组的每一列都是省略号的 x,y 坐标。因此,我想计算这些省略号的中心以使它们居中。所以,我使用 np.mean() 这样做,但我得到了错误的值。如果我绘制省略号和中心,则省略号确实是椭圆形的,但点(根本不)在中心。因此,这不是由于省略号错误造成的。

    def acquire(self, qt, it, lapNumber):
        if self.stream is None:
            self.stream = {'qt': qt, 'it': it}
            self.mean   = {'qt': np.zeros(qt.shape), 'it': np.zeros(it.shape)}
        else:
            self.stream['qt'] = np.vstack((self.stream['qt'], qt - self.mean['qt']))
            self.stream['it'] = np.vstack((self.stream['it'], it - self.mean['it']))

        if self.stream['qt'].shape[0] > 950:
            self.mean['qt'] = np.mean(self.stream['qt'], axis=0)
            self.mean['it'] = np.mean(self.stream['it'], axis=0)

            self.stream['qt'] -= self.mean['qt']
            self.stream['it'] -= self.mean['it']

            self.centered = True

标签: python-3.xnumpynumpy-ndarray

解决方案


我只是在创建一个最小的可重现示例时解决了它。省略号实际上在空间中并不是均匀分布的。所以平均值不是中心,实际上离中心很远。


推荐阅读