У меня есть следующий код, который пытается нормализовать значения массива m x n
(Он будет использоваться в качестве входных данных для нейронной сети, где m
— количество обучающих примеров, а n
— количество функций ).
Однако, когда я проверяю массив в интерпретаторе после запуска скрипта, я вижу, что значения не нормализованы; то есть они все еще имеют исходные значения. Я предполагаю, что это потому, что присвоение переменной array
внутри функции видно только внутри функции.
Как я могу выполнить эту нормализацию на месте? Или мне нужно вернуть новый массив из функции нормализации?
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()