Как на каждый элемент бинарной матрицы выделить ровно один бит?
У меня алгоритм работает с бинарными матрицами (значения элементов 0 или 1) большого размера (~10000x10000).
Если данную матрицу представлять как двумерный список (list), то она занимает в памяти 16*10000*10000 = 1,6 ГБайт, что явно не мало.
Если же представлять как массив массивов (пакет array), то матрица в памяти занимает 2*10000*10000 = 0,2 ГБайт, что приятнее.
Естественно возникает вопрос, а есть ли возможность в python работать с подобными матрицами так, чтобы каждый элемент представлялся в виде одного бита? В этом случае данная матрица заняла бы всего 10000*10000/8 = 0,0125 ГБайт.
Сразу же отвечу на возражения, что 0,2 - 1,6 ГБайт - это немного. Данные бинарные матрицы могут быть сколь угодно большими.