为什么numpy.std()使用abs()?

时间:2017-12-04 10:11:44

标签: python numpy standard-deviation

我检查了numpy库,并在numpy中找到了标准偏差的以下定义:

std = sqrt(mean(abs(x - x.mean())**2))

为什么使用abs()函数? - 因为数学上每个定义的数字的平方都是正的。

所以我想:

abs(x - x.mean())**2 == (x - x.mean())**2

1 个答案:

答案 0 :(得分:3)

实数的平方总是正数,但对于复数而言则不然。

一个非常简单的例子:j**2=-1

更复杂(双关语)的例子:(3-2j)**2=(5-12j)

来自文档:

  

请注意,对于复数,std在求平方之前取绝对值,因此结果始终是实数且非负数。

注意: Python使用j作为虚构单位,而数学家则使用i