![](/img/trans.png)
[英]How much memory is used by the underlying buffer of a broadcasted numpy array?
[英]How much memory in numpy array? Is RAM a limiting factor?
我正在使用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
,并且它有1,000,000个元素,那么它将需要1000000 * 64 / 8 = 8,000,000
cube.dtype
1000000 * 64 / 8 = 8,000,000
字节(8Mb)。 element = matrix
不是替换cube
的元素,而是简单地覆盖element
变量,保持cube
不变。 entry = random.rand() * 100
。 对于函数的“内部”部分,请查看numpy.random模块
import numpy as np
matrix = np.random.random((100,100))*100
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.