Форум сайта python.su
0
Задача - считать матрицу из базы данных и выполнять с ней какие-то действия - перемножать, складывать и т.д. В базе данных (mysql) матрица записанна как
№столбца | №строки | значение
значения - числа от 0 до 10. Проблема в том, что после того как я считал матрицу, перемножение значительно замедляется.
#!/usr/bin/python from numpy import * import MySQLdb as mdb import time con = mdb.connect("localhost", "root", "rootpassword", "recomsysdb") cur = con.cursor() cur.execute("SELECT Rank FROM Rank_t WHERE UserId < 101 and MovieId < 101") res = cur.fetchall() res = where(res == mat(None), 0, res) Y = matrix(res).reshape(100,100) W = mat(random.rand(100, 10)) p = time.time() z = Y*W print "DB - time = %s sec" %(time.time() - p) Y = mat(random.rand(100,100)) p = time.time() q = Y*W print "rand - time = %s sec" %(time.time() - p)
Отредактировано myxo (Май 14, 2012 07:04:41)
Офлайн
0
Ну кстати, проблему решил, дело было в приведении типов, нужно писать
Y = matrix(res, int).reshape(100,100)
Офлайн