Tôi có mã sau đang cố gắng bình thường hóa các giá trị của một mảng m x n
(Nó sẽ được sử dụng làm đầu vào cho mạng nơron, trong đó m
là số lượng ví dụ đào tạo và n
là số tính năng).Sửa đổi nhiều mảng tại chỗ?
Tuy nhiên, khi tôi kiểm tra mảng trong trình thông dịch sau khi tập lệnh chạy, tôi thấy rằng các giá trị không được chuẩn hóa; có nghĩa là, họ vẫn có giá trị ban đầu. Tôi đoán điều này là do việc gán cho biến số array
bên trong hàm chỉ được thấy trong hàm.
Làm cách nào để tôi có thể thực hiện việc chuẩn hóa này? Hay tôi phải trả về một mảng mới từ hàm bình thường?
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()
thời gian '% timeit' là gì? Điều đó có vẻ thú vị, là nó được xây dựng trong? – User
Phiên bản tôi sử dụng ở đây chỉ được tích hợp trong [ipython] (http://ipython.org/). Nhưng nó dựa trên hàm 'timeit' trong mô-đun [' timeit'] (http://docs.python.org/library/timeit.html#module-timeit). – senderle
Ah cuối cùng cũng nhìn vào ipython. Buồn cười tôi đã luôn luôn liên kết nó với ironpython, nhầm lẫn bây giờ tôi nhìn thấy. – User