Сколько памяти в массиве numpy? Является ли оперативная память ограничивающим фактором?

Я использую numpy для создания массива кубов со сторонами длиной 100, таким образом, содержащего всего 1 миллион записей. Для каждой из миллионов записей я вставляю матрицу 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

Я ожидал, что это займет какое-то время, но с генерируемыми 10 миллиардами случайных чисел я не уверен, что мой компьютер вообще справится с этим. Сколько памяти займет такой массив? Будет ли ОЗУ ограничивающим фактором, т. Е. Если на моем компьютере недостаточно ОЗУ, может ли он не создать массив?

Кроме того, если есть более эффективный способ реализации этого кода, буду признателен за советы :)

8
задан aensm 28 June 2012 в 21:51
поделиться