Numpy数组按行或按列归一化

给定一个数组,将各列(行)归一化(缩放到 [0,1] )

方法一

import numpy as np

x = np.array([[1000,  10,   0.5],
              [ 765,   5,  0.35],
              [ 800,   7,  0.09]])

x_normed = x / x.max(axis=0)

print(x_normed)
# [[ 1.     1.     1.   ]
#  [ 0.765  0.5    0.7  ]
#  [ 0.8    0.7    0.18 ]]

x.max(axis=0) 在第0维上取最大值(即每行),返回一个行向量(ncols,),包含每列的最大值,然后可以用x来除以这个向量,这样每一列的最大值就会被缩放到1。

如何确定axis的值,只需要记住axis赋值的维度是要被压缩的维度,如果要得到各列的最大值,需要压缩行这个维度。

方法二

from sklearn.preprocessing import normalize
data = np.array([
    [1000, 10, 0.5],
    [765, 5, 0.35],
    [800, 7, 0.09], ])
data = normalize(data, axis=0, norm='max')
print(data)
>>[[ 1.     1.     1.   ]
[ 0.765  0.5    0.7  ]
[ 0.8    0.7    0.18 ]]

 使用 sklearn.preprocessing

 

参考  https://stackoverflow.com/questions/29661574/normalize-numpy-array-columns-in-python

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值