Как я могу создать файл numpy .npy на месте на диске?

Можно ли создать файл .npy без предварительного выделения соответствующего массива в памяти?

Мне нужно создать и работать с большим массивом numpy, слишком большим для создания в памяти. Numpy поддерживает отображение памяти, но, насколько я понимаю, у меня есть следующие варианты:

  1. Создать файл с отображением памяти с помощью numpy.memmap. Это создает файл прямо на диске без выделения памяти, но не сохраняет метаданные, В [78]: x Из [78]: memmap ([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) В [79]: y = memmap ('/ tmp / x', int, 'r') В [80]: y Out [80]: memmap ([0, 0, 0, 0, 0, 0, 0, 0, 0])

  2. Создайте массив в памяти, сохраните его с помощью numpy.save, после чего его можно будет загрузить в режиме memmapped. Это записывает метаданные с данными массива на диск, но требует, чтобы память была выделена для всего массива хотя бы один раз.

12
задан hamish 2 December 2010 в 13:03
поделиться