Python MySQLdb查询到Numpy数组
所以我试着跟随,但仍然有问题 我的数据库行是57个无符号整数(Unix历元加上28个交换机端口中每个端口的字节计数,输入和输出) 我的代码如下所示:Python MySQLdb查询到Numpy数组,python,mysql,arrays,numpy,Python,Mysql,Arrays,Numpy,所以我试着跟随,但仍然有问题 我的数据库行是57个无符号整数(Unix历元加上28个交换机端口中每个端口的字节计数,输入和输出) 我的代码如下所示: import MySQLdb as mdb import numpy # get the database connector DBconn = mdb.connect('localhost', 'root', '<Password>', 'Monitoring') with DBconn: # prepare a cur
import MySQLdb as mdb
import numpy
# get the database connector
DBconn = mdb.connect('localhost', 'root', '<Password>', 'Monitoring')
with DBconn:
# prepare a cursor object using cursor() method
cursor = DBconn.cursor()
# now get the data for the last 10 minutes
sql = "select * from LowerSwitchBytes where ComputerTime >= (unix_timestamp(now())-(60*10))"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
print row
但是,当我改变规则时:
results = cursor.fetchall()
for row in results:
print row
到
我得到:
Traceback (most recent call last):
File "min.py", line 23, in <module>
A = numpy.fromiter(cursor.fetchall(), count=-1, dtype=numpy.uint32)
ValueError: setting an array element with a sequence.
回溯(最近一次呼叫最后一次):
文件“min.py”,第23行,在
A=numpy.fromiter(cursor.fetchall(),count=-1,dtype=numpy.uint32)
ValueError:使用序列设置数组元素。
知道我做错了什么吗?
np.fromiter
正在抱怨,因为它试图将整行输入写入新数组的单个项中。您可以使用记录数组解决此问题:
A = numpy.fromiter(cursor.fetchall(), count=-1,
dtype=[('', numpy.uint8)]*57)
如果所有记录的类型相同,则可以获得如下数组视图:
A = A.view(numpy.uint8).reshape(-1, 57)
这基本上是可行的,但因为它们是大整数,所以在两行上都是numpy.uint32而不是numpy.uint8。非常感谢!
A = numpy.fromiter(cursor.fetchall(), count=-1,
dtype=[('', numpy.uint8)]*57)
A = A.view(numpy.uint8).reshape(-1, 57)