+-
我有以下numpy数组:
foo = np.array([[0.0, 10.0], [0.13216, 12.11837], [0.25379, 42.05027], [0.30874, 13.11784]])
产量:
[[ 0. 10. ]
[ 0.13216 12.11837]
[ 0.25379 42.05027]
[ 0.30874 13.11784]]
如何规范化此数组的Y分量.所以它给了我类似的东西:
[[ 0. 0. ]
[ 0.13216 0.06 ]
[ 0.25379 1 ]
[ 0.30874 0.097]]
最佳答案
参考此Cross Validated Link, How to normalize data to 0-1 range?,看起来您可以在foo的最后一列执行min-max规范化.
v = foo[:, 1] # foo[:, -1] for the last column
foo[:, 1] = (v - v.min()) / (v.max() - v.min())
foo
array([[ 0. , 0. ],
[ 0.13216 , 0.06609523],
[ 0.25379 , 1. ],
[ 0.30874 , 0.09727968]])
执行规范化的另一个选项(如OP所建议的)是使用sklearn.preprocessing.normalize,它会产生稍微不同的结果 –
from sklearn.preprocessing import normalize
foo[:, [-1]] = normalize(foo[:, -1, None], norm='max', axis=0)
foo
array([[ 0. , 0.2378106 ],
[ 0.13216 , 0.28818769],
[ 0.25379 , 1. ],
[ 0.30874 , 0.31195614]])
点击查看更多相关文章
转载注明原文:python – NumPy数组的Min-max规范化 - 乐贴网