当前位置: 首页 > 面试题库 >

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

司徒良哲
2023-03-14
问题内容

我正在使用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]

谢谢!


问题答案:

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



 类似资料:
  • 问题内容: 除了遍历所述集合的内容并将每个项目手动推入数组之外,是否有更有效的方法将HTMLCollection转换为数组? 问题答案: var arr = Array.prototype.slice.call( htmlCollection ) 使用“本地”代码将具有相同的效果。 编辑 由于这有很多观点,请注意(按@oriol的评论),以下更简洁的表达 实际上 等效: 但是,请注意@JussiR

  • 问题内容: 信不信由你,在分析当前代码后,numpy数组还原的重复操作将占用大量的运行时间。我现在拥有的是基于视图的常见方法: 还有其他方法可以更有效地执行此操作,还是我对不切实际的numpy性能的痴迷所致的幻觉? 问题答案: 创建时,您正在创建原始数组的视图。然后,您可以更改原始数组,并且视图将更新以反映所做的更改。 您是否经常需要重新创建视图?您应该能够执行以下操作: 我不是numpy专家,但

  • 问题内容: 说我有: 现在,我要将int值转换为String。哪种方法更有效? 我只是好奇是否有真正的区别,或者一个比另一个更好? 问题答案: 测试了10m分配的数字10 一个似乎赢了 编辑:JVM是Mac OS X 10.5下的标准’/ usr / bin / java’ 更多编辑: 要求的代码 情况2和3同样 使用

  • 问题内容: 我有2节课 A: 和B: 以及一些相当大的A对象数组。 我想转换到有效。我知道几种方法可以做到这一点: AFAIK 1最有效。但是使用Java 8功能,可以使其更短。2与1几乎相同,但循环由stream代替。不确定它的有效性。3是最短的方法,但是默认收集器使用默认构造函数,这意味着如果我们有很大的初始数组,则将至少一次调整in中的数组大小。因此它不是那么有效。和4,据我了解(虽然从未使

  • 有没有一种方法可以直接将集合转换为字符串(而不需要先将集合转换为数组)?我看过Mozilla的文档,我觉得这可能是一种方法。我就是这么做的:

  • 问题内容: 我需要将结果集转换为字符串数组。我正在从数据库中读取电子邮件地址,我需要能够像这样发送它们: 这是我的阅读电子邮件地址的代码: MyOutput是: 我需要这样: 我正在使用Oracle 11g。 问题答案: 获得所需的输出: 替换这些行 通过