Изменение размера массивов numpy.memmap

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

a = np.arange(10)
a.resize(20)
a
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

a = np.memmap('bla.bin', dtype=int)
a
>>> memmap([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

a.resize(20, refcheck=False)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-41-f1546111a7a1> in <module>()
----> 1 a.resize(20, refcheck=False)

ValueError: cannot resize this array: it does not own its data

Изменение размера базового буфера mmap работает отлично. Проблема в том, как отразить эти изменения в объекте массива. Я видел этообходной путь, но, к сожалению, он не меняет размер массива на месте. Есть также некоторыепустая документация по поводу изменения размера mmaps, но он явно не работает, по крайней мере с версией 1.8.0. Любые другие идеи, как переопределить встроенные проверки изменения размера?

Ответы на вопрос(2)

Ваш ответ на вопрос