我使用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,它是否真的无法生成阵列?
另外,如果有更有效的方法来实现这段代码,我将非常感谢以下提示:)
几点:
cube.dtype
是int64
,并且它有1000000个元素,则需要1000000 * 64 / 8 = 8,000,000
字节(8Mb)。cube
中的元素,element = matrix
将只覆盖element
变量,而保持cube
不变。这同样适用于entry = random.rand() * 100
。对于函数的“内部”部分,请查看numpy.random模块
相关问题 更多 >
编程相关推荐