Numpy modificar matriz no lugar?
Eu tenho o seguinte código que está tentando normalizar os valores de umm x n
array (Ele será usado como entrada para uma rede neural, ondem
é o número de exemplos de treinamento en
é o número de recursos).
No entanto, quando inspeciono a matriz no interpretador depois que o script é executado, vejo que os valores não são normalizados; isto é, eles ainda têm os valores originais. Eu acho que isso é porque a atribuição para oarray
variável dentro da função é vista apenas dentro da função.
Como posso fazer essa normalização? Ou eu tenho que devolver uma nova matriz da função normalizar?
<code>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() </code>