Tengo el siguiente código que intenta normalizar los valores de una matriz m x n
(Se usará como entrada a una red neuronal, donde m
es el número de ejemplos de capacitación y n
es el número de características).Numpy modify array in place?
Sin embargo, cuando inspecciono la matriz en el intérprete después de ejecutar la secuencia de comandos, veo que los valores no están normalizados; es decir, todavía tienen los valores originales. Supongo que esto se debe a que la asignación a la variable array
dentro de la función solo se ve dentro de la función.
¿Cómo puedo hacer esta normalización en su lugar? ¿O debo devolver una nueva matriz de la función normalizar?
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()
¿Qué es '% timeit'? Eso parece interesante, ¿está incorporado? – User
La versión que uso aquí solo está integrada en [ipython] (http://ipython.org/). Pero se basa en la función 'timeit' del módulo [' timeit'] (http://docs.python.org/library/timeit.html#module-timeit). – senderle
Ah, finalmente miré ipython. Es curioso que siempre lo haya asociado con Ironpython, por error, ahora lo veo. – User