numpy.lib.format.open_memmap не хранит данные

#python #numpy #numpy-memmap

Вопрос:

Моя карта numpy.lib.format.open_memmap не хранит мои данные. Код приведен ниже.

 >>> from numpy.lib.format import open_memmap
>>> import numpy as np
>>> winners = open_memmap("winners.npy", dtype = np.str_, mode='w ', shape=(6,))
>>> winners[0] = "emma"
>>> winners
memmap(['', '', '', '', '', ''], dtype='<U0') # why is this empty?
 

Я также попытался смыть победителей.

 >>> winners.flush()
>>> winners
memmap(['', '', '', '', '', ''], dtype='<U0') # still empty.
 

Комментарии:

1. Укажите размер строки, например «U10»

2. Как мне это сделать?

3. dtype = np.str_ имеет значение по умолчанию ‘U0’

4. Вы можете использовать, например, dtype='U8' , который позволит использовать строки юникода длиной до 8.

5. memmap должно быть достаточно большим, чтобы вместить струны, которые вы хотите туда поместить. numpy тип строки dtype имеет фиксированный (максимальный) размер, который необходимо указать при создании массива.