【发布时间】:2012-06-30 11:49:27
【问题描述】:
我正在使用 numpy 创建一个边长为 100 的立方体数组,因此总共包含 100 万个条目。对于百万个条目中的每一个,我都插入了一个 100x100 矩阵,其条目由随机生成的数字组成。我正在使用以下代码:
import random
from numpy import *
cube = arange(1000000).reshape(100,100,100)
for element in cube.flat:
matrix = arange(10000).reshape(100,100)
for entry in matrix.flat:
entry = random.random()*100
element = matrix
我原以为这需要一段时间,但由于生成了 100 亿个随机数,我不确定我的计算机能否处理它。这样的数组会占用多少内存? RAM 会是一个限制因素,即如果我的计算机没有足够的 RAM,它会无法实际生成数组吗?
另外,如果有更高效的代码来实现,我会很感激提示:)
【问题讨论】:
-
假设
double精度,每个 8 字节,如果你真的想存储 100 亿个,那就是 80GB。如果你不得不问,你的电脑没有足够的内存。也就是说,看起来你是在创建它们但没有存储它们,所以你应该没问题。
标签: python arrays memory numpy