我有以下代码试图规范化m x n
数组的值(它将用作神经网络的输入,其中m
是训练示例n
的数量和特征的数量)。
但是,当我在脚本运行后检查解释器中的数组时,我发现这些值没有标准化;也就是说,它们仍然具有原始值。我猜这是因为array
函数内部变量的赋值只能在函数内部看到。
我怎样才能做到这一点正常化?还是我必须从 normalize 函数返回一个新数组?
import numpy
def normalize(array, imin = -1, imax = 1):
"""I = Imin + (Imax-Imin)*(D-Dmin)/(Dmax-Dmin)"""
dmin = array.min()
dmax = array.max()
array = imin + (imax - imin)*(array - dmin)/(dmax - dmin)
print array[0]
def main():
array = numpy.loadtxt('test.csv', delimiter=',', skiprows=1)
for column in array.T:
normalize(column)
return array
if __name__ == "__main__":
a = main()