Numpy modyfikacji tablicy w miejscu?
Mam następujący kod, który próbuje znormalizować wartości anm x n
tablica (będzie używana jako wejście do sieci neuronowej, gdziem
to liczba przykładów szkoleń in
to liczba funkcji).
Jednak gdy sprawdzam tablicę w interpreterze po uruchomieniu skryptu, widzę, że wartości nie są znormalizowane; to znaczy, że wciąż mają oryginalne wartości. Chyba dlatego, że przypisanie doarray
zmienna wewnątrz funkcji jest widoczna tylko w obrębie funkcji.
Jak mogę wykonać tę normalizację? Czy muszę zwrócić nową tablicę z funkcji normalizacji?
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()