【问题标题】:python matrix multiplication: how to handle very large matrices?python矩阵乘法:如何处理非常大的矩阵?
【发布时间】:2011-08-19 18:44:41
【问题描述】:
a = numpy.zeros((17770,5))

b = numpy.zeros((5,20000))

ma = numpy.matrix(a)

mb = numpy.matrix(b)

ma.shape = (17770,5)mb.shape = (5,20000),都是numpy.matrix

我需要ma*mb。但我收到错误消息"ValueError: array is too big"

这些矩阵对于 Python 乘法来说是否太大?

顺便说一句,我用 python2.6.6/32bit/3GB RAM 测试过

【问题讨论】:

  • 考虑内存映射,如果你真的需要这么大的产品矩阵。

标签: python numpy matrix-multiplication


【解决方案1】:

我可以在我的机器上计算ma*mbPython 2.7.1 |EPD 7.0-2 (64-bit) 在 64 位 Ubuntu 上)。

请确保您在 64 位操作系统上使用 64 位 Python,因为 17770x20000 的双精度浮点矩阵需要 2.8GB 的​​ RAM,这超过(或非常接近)大多数 32 位平台的容量处理。

根据您的要求,也可以使用单精度浮点数 (numpy.float32)。

最后,如果您的矩阵是稀疏的或有结构,您可能希望研究利用它来减少内存需求。

【讨论】:

  • 你的意思是我的内存用完了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 2013-12-20
  • 1970-01-01
  • 2011-11-20
  • 2017-03-11
  • 2013-12-23
  • 2017-12-09
相关资源
最近更新 更多