【问题标题】:Minmax normalization cast away the complex part?最小最大归一化抛弃了复杂的部分?
【发布时间】:2017-05-13 08:02:21
【问题描述】:

我目前正在尝试规范化包含复数的 numpy.ndarray,但由于某种原因,我的实现抛弃了复杂的部分。为什么?...

def numpy_minmax(X):
    xmin =  X.min()
    print X.min()
    print X.max()
    return (2*(X - xmin) / (X.max() - xmin)-1)*0.9

【问题讨论】:

  • 您期望复数的最小值是多少? 3+4j4+3j 哪个更小?是的,NumPy 忽略了虚部。您可以使用 np.imag(X).min() 将其考虑在内,但首先,对于复数来说,“极小极大标准化”意味着什么?
  • 神经网络如何处理复数?..对神经网络的输入进行了归一化..我怎样才能对其进行归一化?
  • 什么是标准化?
  • 好点.. 是否有不同的方式进行标准化,使其介于
  • ndarray 包含复数

标签: python numpy normalization complex-numbers


【解决方案1】:

复数的最小值或最大值是一个未定义的概念。这就是为什么 NumPy 在取数组的最大值或最小值时会忽略虚部。

通常,规范化包括居中缩放

复数数组中心的自然概念是包含它们的最小磁盘的中心。但是这个(切比雪夫中心)有点难以计算。一种更简单的居中方法是采用包含数字的最小轴对齐矩形。这涉及分别查看实部和虚部的最大/最小值:

a = (np.real(X).min() + np.real(X).max())/2.0
b = (np.imag(X).min() + np.imag(X).max())/2.0
Y = X - complex(a, b)

接下来,缩放。看起来您希望数字的绝对值最多为 0.9。这可以通过使用Y的元素绝对值的最大值来排列。

return 0.9*Y/np.abs(Y).max()

这不是唯一可以继续的方法;但对我来说,以上似乎是您的代码最直接地适应复杂情况。

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 2021-06-06
    • 2018-12-28
    • 2021-07-26
    • 2021-10-17
    • 2014-10-19
    • 2020-07-07
    • 1970-01-01
    相关资源
    最近更新 更多