Я использую numpy для создания массива кубов со сторонами длины 100, что содержит 1 миллион записей. Для каждого из миллионов записей я вставляю матрицу 100x100, записи которой состоят из случайно сгенерированных чисел. Я использую следующий код, чтобы сделать это:Сколько памяти в массиве numpy? ОЗУ является ограничивающим фактором?
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 миллиардов случайных чисел генерируются, я не уверен, что мой компьютер может даже справиться с этим. Сколько памяти будет занимать такой массив? Будет ли ОЗУ предельным фактором, то есть, если на моем компьютере не хватает ОЗУ, может ли он не сгенерировать массив?
Кроме того, если есть более эффективно реализовать этот код, я был бы признателен за советы :)
Предполагая, что 'double' точность, по 8 байт каждый, если вы действительно пытаются сохранить 10 миллиардов из них, это 80GB. Если вам нужно спросить, на вашем компьютере недостаточно памяти. Тем не менее, похоже, что вы создаете их все, но не храните их, поэтому все должно быть в порядке. – Gabe