【问题标题】:How to scale numpy matrix in Python?如何在 Python 中缩放 numpy 矩阵?
【发布时间】:2020-03-15 10:31:16
【问题描述】:

我有这个 numpy 矩阵: x = np.random.randn(700,2) 我想做的是在该范围内缩放第一列的值:1.5 and 11 和在 `-0.5 和 5.0 之间的第二列的值。有谁知道我怎么能做到这一点?提前致谢

【问题讨论】:

    标签: python numpy machine-learning scaling numpy-ndarray


    【解决方案1】:

    我们使用一个新数组y 来保存结果:

    def scale(col, min, max):
        range = col.max() - col.min()
        a = (col - col.min()) / range
        return a * (max - min) + min
    
    x = np.random.randn(700,2)
    y = np.empty(x.shape)
    y[:, 0] = scale(x[:, 0], 1.5, 11)
    y[:, 1] = scale(x[:, 1], -0.5, 5)
    print(y.min(axis=0), y.max(axis=0))
    
    [ 1.5 -0.5] [11.  5.]
    

    【讨论】:

      【解决方案2】:
      • 从自身中减去每列的最小值
      • 将结果的每一列除以其最大值
      • 将该结果的第 0 列乘以 11-1.5
      • 将该结果的第 1 列乘以 5--0.5
      • 将 1.5 添加到该结果的第 0 列
      • 将 -0.5 添加到该结果的第一列

      您可能可以将其中一些步骤结合起来。

      【讨论】:

        猜你喜欢
        • 2015-02-13
        • 1970-01-01
        • 2013-11-19
        • 1970-01-01
        • 1970-01-01
        • 2018-10-12
        • 2021-11-12
        • 2013-12-09
        • 1970-01-01
        相关资源
        最近更新 更多