如何在python中规范化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], [

我有以下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],
   [ 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()