@mrgloom

Как изменить размер numpy.memmap, не копируя?

Код работает, но изменения не сохраняются

def test_resize_inplace():

    fA = np.memmap('A_r.npy', dtype='uint8', mode='w+', shape=(3,12))

    print "fA"
    print fA

    fA[2][0] = 42

    # resize by creating new memmap
    new_fA = np.memmap('A_r.npy', mode='r+', dtype='uint8', shape=(20,12))

    print 'fA'
    print fA

    print 'new_fA'
    print new_fA


причем если я пытаюсь вынести ресайз в отдельную процедуру, интерпретатор рушиться на строчке
print new_fA

def resize_memmap(fm,sz,tp):
    fm.flush()
    print fm.filename
    new_fm = np.memmap(fm.filename, mode='r+', dtype= tp, shape=sz)
    return new_fm

def test_resize_inplace():

    fA = np.memmap('A_r.npy', dtype='uint8', mode='w+', shape=(3,12))

    print "fA"
    print fA

    fA[2][0] = 42

    sz= (20,12)
    tp= 'uint8'

    new_fA= resize_memmap(fA,sz,type)
    new_fA[9][9]= 111

    print 'fA'
    print fA

    print 'new_fA'
    print new_fA
  • Вопрос задан
  • 2507 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы