Можно ли создать матрицу размером 1 миллион x 1 миллион, используя numpy?

Возможный дубликат:
Python Numpy Очень большие матрицы

Я попробовал numpy.zeros ((100k x 100k)), и он вернул «массив слишком большой». Ответ на комментарии: 1) Я мог бы создать матрицу 10k x 10k, но не 100kx100k и 1milx1mil. 2) Матрица не разрежена.

3 Solutions collect form web for “Можно ли создать матрицу размером 1 миллион x 1 миллион, используя numpy?”

Мы можем сделать простые математики, чтобы это выяснить. 1 миллион на 1 миллион матрицы содержит 1 000 000 000 000 элементов. Если каждый элемент занимает 4 байта, потребуется 4 000 000 000 000 байт памяти. То есть 3,64 терабайта.

Есть также шансы, что данная реализация Python использует больше, чем для одного числа. Например, только прыжок с поплавка на двойной означает, что вам понадобится 7.28 терабайт. (Есть также шансы, что Python хранит номер в куче, и все, что вы получаете, является указателем на него, что примерно удваивает площадь, даже не принимая во внимание метаданные, но это скользкие основания, я всегда ошибаюсь, когда говорю о Python внутренности, так что давайте не будем копать слишком много.)

Я полагаю, что numpy не имеет жесткого ограничения, но если ваша система не имеет такой свободной памяти, делать нечего.

У вашей матрицы много нулевых записей? Я подозреваю, что это так, мало кто делает плотные проблемы, большие.

Вы можете легко сделать это с помощью разреженной матрицы. У SciPy есть хороший набор, встроенный. http://docs.scipy.org/doc/scipy/reference/sparse.html Пространство, требуемое разреженной матрицей, растет с числом ненулевых элементов, а не с размерами.

У вашей системы, вероятно, не будет достаточно памяти для хранения матрицы в памяти, но в настоящее время у вас может быть достаточно терабайт свободного места на диске. В этом случае numpy.memmap позволит вам хранить массив на диске, но выглядит так, как если бы он находился в памяти.

Однако, вероятно, лучше всего переосмыслить проблему. Вам действительно нужна матрица такая большая? Любые вычисления, связанные с ним, вероятно, будут неизмеримо медленными, и их нужно делать поблочно.

  • Как я могу логировать маску массива, используя скопированные сравнения?
  • Как преобразовать numpy.recarray в numpy.array?
  • Анализ прокрустов с помощью NumPy?
  • Эффективное элементное деление матрицы, когда элементы в знаменателе могут быть равны нулю
  • Биннинг в Numpy
  • Как удалить строки из массива numpy на основе нескольких условий?
  • Cython: «фатальная ошибка: numpy / arrayobject.h: нет такого файла или каталога»
  • Scipy / Numpy FFT Frequency Analysis
  •  
    Interesting Posts for Van-Lav

    Как сортировать в python с несколькими условиями?

    Ошибка при профилировании отлично работающего многопроцессорного скрипта python с cProfile

    Python – создание словаря с помощью List

    эквивалент python getoutput () в подпроцессе

    Декораторы против классов в веб-разработке python

    Персистент UTF-8 как кодировка по умолчанию

    Изображения не отображаются в HTML на Django, но HTML работает в браузере

    В Python, что лучший способ избежать использования одного и того же имени для аргумента __init__ и переменной экземпляра?

    извлекать текст из Интернета с помощью Angular JS-тэгов, таких как ng-view

    Сортировка данных массива по общей дате

    Tkinter: настройка метода для динамически генерируемых меток

    Чтение и запись файла .docx с помощью python

    Построение линейного графика с барами ошибок и точками данных из pandas DataFrame

    Python и ссылка. Ограничение?

    Подстрока регулярного выражения одно несоответствие в любом месте строки

    Python - лучший язык программирования в мире.