我有以下代碼,試圖規範m x n
數組的值(它將用作神經網絡的輸入,其中m
是訓練示例的數量,而n
是特徵的數量)。Numpy修改數組的位置?
但是,當我在腳本運行後檢查解釋器中的數組時,我發現這些值沒有正常化;也就是說,他們仍然具有原始價值。我想這是因爲函數內的變量array
的賦值只能在函數內部看到。
我該如何做到這一點正常化?或者我必須從normalize函數返回一個新數組?
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()
'%timeit'是什麼?這看起來很有趣,它是內置的嗎? – User 2012-04-14 00:28:15
我在這裏使用的版本只是內置於[ipython](http://ipython.org/)。但它基於['timeit'](http://docs.python.org/library/timeit.html#module-timeit)模塊中的'timeit'函數。 – senderle 2012-04-14 00:31:22
啊終於看着ipython。有趣的是,我一直把它和蟒蛇皮相關聯,現在我錯誤地看到了。 – User 2012-04-14 00:34:58