Форум сайта python.su
Например на диске лежит бинарный файл большого размера, который не может полностью поместиться в память, т.е. его нельзя загрузить полнсотью целиком.
Какие существуют методы работы с такими файлами в питоне?
По идее можно просто сместиться от начала файла и прочитать требуемый кусок памяти?
Но если я хочу работать с файлом как с array т.е. например узнать его размерность типа arr.shape (теоретически можно эту информацию хранить в хедере от файла, но возможно есть какой то метод из коробки?)
Существуют ли билиотеки которые позволяют например перемножить 2 матрицы которые не помещаются в память?
Офлайн
mmap?
Офлайн
идея такого алгоритма очень простая - делается блочное перемножение матриц.
http://facultyfp.salisbury.edu/taanastasio/COSC490/Fall03/Lectures/FoxMM/example.pdf
Непосредственной реализации на питоне не знаю, но думаю можно найти в документации по hdf5
http://www.pytables.org/docs/LargeDataAnalysis.pdf
У этой библиотеки можно настроить размер блочного хранения матриц так что он будет хорошо работать при перемножении.
Можно положиться на буферизацию от операционной системы (mmap), но это будет хуже чем самописный алгоритм.
А с hdf5 вы можете перемножать матрицы которые и на жесткий диск не влезают - просто делаете распределенное по кластеру хранилище :)
Офлайн
doza_andПросто любопытства ради, а в каких задачах возникают такие матрицы?
А с hdf5 вы можете перемножать матрицы которые и на жесткий диск не влезают - просто делаете распределенное по кластеру хранилище
Офлайн
s0rg
mmap?
Отредактировано alexbadaloff (Апрель 19, 2013 09:16:18)
Офлайн
mmap?linux only?
Отредактировано mrgloom (Апрель 19, 2013 09:39:06)
Офлайн
PooHПогода, исследование течений.
Просто любопытства ради, а в каких задачах возникают такие матрицы?
Офлайн
mrgloomC чего бы это?
linux only?
Офлайн
mrgloomВы написали уже понятнее, но мне этого все равно не достаточно чтобы дать дельный совет.
вообще у меня задача такая,
PooHНе только из церна ветер дует. Сейчас такие задачи часто встречаются и очень прозаические. Например с чем приходилось сталкиваться:
Просто любопытства ради, а в каких задачах возникают такие матрицы?
Отредактировано doza_and (Апрель 20, 2013 06:32:36)
Офлайн
Насколько долго вычисляется расстояние по сравнению с временем дискового доступа к элементам?ну в общем случае хотелось бы адаптивный) типа тестируем железо и на основе этого уже делаем какую то структуру.
Поиск однократный или выполняется много раз? Что для вас существеннее, время построения индекса или время поиска?Поиск выполняется много раз и важно время поиска.
Судя по описанию тут подойдет RTree.дак пробелема в том, что для построения дерева надо данные + дерево в памяти держать.
Офлайн