1

我有一个数组形式的数据文件。我想规范化该数组中的所有复数。但我不想使用 z/Abs[z] 这种方法。我想使用不同的方法,比如 z-score。例如,在 z-score 中,您可以找到标准偏差,并且可以对所有数字进行归一化,但我正在尝试对复数进行归一化。那么我该怎么做呢?

4

2 回答 2

1

实数的 Z 分数:

Z = (X - Avg) / SD

想到的明显方法是独立计算实平面和假想平面的平均值和标准偏差。

然后我们可能会改变公式,使用类似 sqrt(平方和)的方法来组合实部和虚部或分数。

Zr = (Xr - AvgR) / SDr
Zi = (Xi - AvgI) / SDi

最后:

Zc = sqrt( Zr^2 + Zi^2)

这可能是从其分布中的复数生成单个 Z 分数的最直接方法。

这当然与“规范化”不同,后者将保留单独的组件以及我最初回答的内容。但我相信一个分数,衡量与平均值的距离,就是你在这里所追求的。

于 2013-10-27T23:23:04.227 回答
0

你可以将你的复数向量归一化为

norm = np.exp(1j*np.angle(z))

虽然速度较慢但有优势

z/abs(z)

因为如果 z 为零并且您进行上述计算,您将得到 nan。即使您将 nan 删除 0 ,您也将得到 0 ,因为标准化长度不能为零。如果你使用这个长度为 0 的归一化向量来设置任何其他向量的相位,你总是会得到 0。这取决于你在搜索什么

或者你可以做

z1=z/abs(z)
z1[np.isnan(z)]=1

因为归一化长度应该是 1

问候

于 2015-11-18T12:09:24.853 回答