将MySQL结果集转换为NumPy数组的最有效方法是什么?

问题描述 投票:14回答:3

我正在使用MySQLdb和Python。我有一些基本查询,例如:

c=db.cursor()
c.execute("SELECT id, rating from video")
results = c.fetchall()

我需要“结果”成为NumPy数组,并且我希望节省内存消耗。似乎逐行复制数据效率极低(将需要两倍的内存)。是否有更好的方法将MySQLdb查询结果转换为NumPy数组格式?

我之所以要使用NumPy数组格式,是因为我希望能够轻松地对数据进行切片和切块,在这方面,python对多维数组似乎并不友好。] >

e.g. b = a[a[:,2]==1] 

谢谢!

我正在使用MySQLdb和Python。我有一些基本查询,例如:c = db.cursor()c.execute(“ SELECT id,从视频分级”)结果= c.fetchall()我需要“结果”作为NumPy数组,而我m ...

python numpy mysql-python etl
3个回答
15
投票

fetchall方法实际上返回一个迭代器,而numpy具有fromiter方法以从一个插入器初始化一个数组。因此,根据表中的数据,您可以轻松地将两者合并,或使用适配器生成器。


23
投票

此解决方案使用Kieth的fromiter


6
投票

NumPy的fromiter

© www.soinside.com 2019 - 2024. All rights reserved.