используя файл / db в качестве буфера для очень большого массива, чтобы получить данные, предотвращающие переполнение? - PullRequest
1 голос
/ 29 сентября 2010

При использовании numpy.darray я столкнулся с проблемой переполнения памяти из-за размера данных, например:

Предположим, у меня есть источник данных массива float64 100000000 * 100000000 * 100000000, когда я хочучитать данные и обрабатывать их в памяти с помощью np.Это вызовет ошибку Memoray Error, поскольку она обрабатывает всю память для хранения такого большого массива в памяти.

Тогда, возможно, использование дискового файла / базы данных в качестве буфера для хранения массива является решением, когда я хочуиспользовать данные, он будет получать необходимые данные из файла / базы данных, в противном случае это просто объект Python, занимающий мало памяти.

Возможно ли написать такой адаптер?

Спасибо.

Rgs, KC

Ответы [ 2 ]

1 голос
/ 29 сентября 2010

Посмотрите на pytables или numpy.memmap , возможно, они соответствуют вашим потребностям.

лучший, Питер

0 голосов
/ 29 сентября 2010

Если у вас есть матрицы с большим количеством нулей, используйте scipy.sparse.csc_matrix. Можно написать все, например. Вы можете переопределить класс массива numarray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...