如何在python中规范化numpy数组
我有以下numpy数组:如何在python中规范化numpy数组,python,arrays,numpy,normalization,data-science,Python,Arrays,Numpy,Normalization,Data Science,我有以下numpy数组: from sklearn.decomposition import PCA from sklearn.preprocessing import normalize import numpy as np # Tracking 4 associate metrics # Open TA's, Open SR's, Open SE's associateMetrics = np.array([[111, 28, 21], [ 27, 17, 20], [
from sklearn.decomposition import PCA
from sklearn.preprocessing import normalize
import numpy as np
# Tracking 4 associate metrics
# Open TA's, Open SR's, Open SE's
associateMetrics = np.array([[111, 28, 21],
[ 27, 17, 20],
[ 79, 23, 17],
[185, 125, 50],
[155, 76, 32],
[ 82, 24, 17],
[127, 63, 33],
[193, 91, 63],
[107, 24, 17]])
现在,我想规范化每个“列”,使值介于0和1之间。我的意思是,例如,第一列中的值应该介于0和1之间
我该怎么做
normed_matrix = normalize(associateMetrics, axis=1, norm='l1')
以上内容为我提供了行标准化我可以使用以下方法来实现这一点:
normalized_metrics = normalize(associateMetrics, axis=0, norm='l1')
“上面的方法行吗?”你试过了吗?你想把每一列除以它的最大值吗?我想我有我的答案了。我试过把axis=0,它就行了。文档对我来说不清楚,我想…scipy中的轴指定了您正在处理的尺寸。对于二维数据(matrxi),轴=0表示跨行,轴=1表示跨列。非常感谢。请允许我再问一个问题。如何将每列乘以不同的标量值?我要做的是为每列指定不同的权重。正常化后我应该这样做吗?如果是,如何进行?抱歉,我对python有点陌生。您可以使用numpy.multiply将权重向量与矩阵按元素相乘。也许是
np。乘法(v,m)
其中v
是你的向量,m
是你的矩阵。对不起,对于逐列乘法,您可能需要np.multiply(v,m.transpose()).transpose()