我有一个数组形式的数据文件。我想规范化该数组中的所有复数。但我不想使用z / Abs [z]这种方法。我想使用像z-score这样的不同方法。例如,在z-score中你可以找到标准差,你可以标准化所有数字,但我试图规范化复数。那我该怎么办呢?
答案 0 :(得分:0)
实数的Z分数:
Z = (X - Avg) / SD
想到的显而易见的方法是计算平均值&实平面的标准偏差&假想的飞机独立。
然后我们可能会改变公式,使用像sqrt(平方和)方法来组合真实和&虚构的成分或分数。
Zr = (Xr - AvgR) / SDr
Zi = (Xi - AvgI) / SDi
最后:
Zc = sqrt( Zr^2 + Zi^2)
这可能是从其分布中的复数中产生单个Z分数的最直接方式。
这当然不同于“标准化”,它将保留单独的组件以及我最初回答的内容。但是我相信,只有一个分数,衡量与平均值的距离,就是你在这里所追求的。
答案 1 :(得分: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
问候