【发布时间】:2023-01-09 18:30:49
【问题描述】:
如何在没有 minmaxscaler 包的情况下规范化数据。这里我已经按照minmax比例公式试过了。但我收到这样的错误IndexError:标量变量的索引无效。
代码:
scale = []
for i in range(0,6):
minFP = FCData[:,i].min()
maxFP = FCData[:,i].max()
yscale = (FCData[:,i] - minFP[i]) / ( maxFP[i] - minFP[i])
scale.append(yscale[i])
scale = np.array(scale)
我的数据: 数据形状:(15000,6)
array([[ 4.46733 , 4.39629 , -34.2351 , -4077.23 ,
-6206.81 , -874.539 ],
[ 7.65166 , 2.61174 , -49.7356 , -4846.76 ,
-9060.05 , -1291.39 ],
[ 11.285 , -2.91447 , -87.9661 , -5412.32 ,
-16345.2 , -213.72 ],
[ 12.7313 , -6.48048 , -123.094 , -5939.48 ,
-23005.6 , 443.115 ],
[ 11.6425 , 0.0259204, -131.717 , -6972.53 ,
-24651.9 , -1112.73 ],
[ 12.3602 , 10.1988 , -139.597 , -8544.17 ,
-26118.8 , -3260.79 ],
[ 16.0733 , 12.1455 , -165.01 , -10371.5 ,
-30873.5 , -3643.65 ],
[ 21.1933 , 8.86926 , -210.599 , -12673.2 ,
-39447.9 , -2785.69 ],
[ 24.3619 , 7.59683 , -267.449 , -16170.6 ,
-50300.9 , -2823.35 ]])
【问题讨论】:
-
maxFP和minFP只是值而不是列表/数组,因此不需要i索引,例如,将yscale = (FCData[:,i] - minFP[i]) / ( maxFP[i] - minFP[i])更改为yscale = (FCData[:,i] - minFP) / (maxFP - minFP) -
此外,对于您的行
scale.append(yscale[i]),您需要将其更改为scale.append(yscale),否则您的输出将仅包含每列的单个缩放值,而不是该列的所有值。 -
但为什么数据形状会是 (6,15000)?应该是 (15000,6)
标签: python normalization