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>

questionAnswers(4)

yourAnswerToTheQuestion