numpy矩阵的最大元素/大小是多少?

0 投票
1 回答
4034 浏览
提问于 2025-04-16 21:54

什么是numpy矩阵的最大元素/情况,或者说numpy矩阵的最大大小是多少?

上面的代码在变量矩阵大小时返回了内存错误……那么这到底依赖于什么环境因素呢(比如可用的连续内存量)?

for ret in xrange(5000,7000,50):

   res = []
   for x in xrange(ret):
       temp=[]
       for y in xrange(ret):
           temp.append(random.random())
       res.append(temp)

  print "r"
  r = numpy.mat(res)
  print "s"
  s = numpy.mat(res,dtype='f4')
  print "t"
  w = numpy.mat(res,dtype('f8'))

问题是:什么时候以及为什么会返回“内存错误”?

附注:我在Windows上使用最新的Python和numpy(是的,我知道……)7 64位。

1 个回答

1

请查看 内存上限?

至于为什么会出现内存错误,那是因为在为某个大对象分配内存时出现了问题。具体是哪个对象并不重要,因为在你为 res 的后面几行分配内存时,所需的内存量会比之前任何时候都要高。这是因为 numpy 矩阵在你将 rst 指向另一个对象(即在下一次迭代中创建的新矩阵)之前,是不会被垃圾回收的。

撰写回答