Чтение сжатого файла NumPy во время «с open () как f»

1

Я хочу создать генератор данных в Python на основе функции "fit_generator" на странице https://keras.io/models/sequential/. Код для функции:

def generate_arrays_from_file():
    while True:
        with open('data.npz') as f:
            for line in f:
                # TODO
                yield ({'input': x}, {'output': y})

В строке TODO мне нужно назначить некоторые данные из f в x и y.

Теперь файл "data.npz" на самом деле является зашифрованным файлом NumPy. Это было создано:

x = random_numpy_array()  # Create a NumPy array (details not important)
y = random_numpy_array()
np.savez('data.npz', x=x, y=y)

Обычно вы читаете x и y, используя:

data = np.load('data.npz')
x = data['x']
y = data['y']

Однако в моем примере (первый блок кода выше) я не загружал данные, используя np.load(). Вместо этого я загрузил его, используя with open('data.npz') as f.

Чтобы прочитать x и y из f, я попытался:

x = f['x']
y = f['y']

Но это дает мне ошибку:

TypeError: '_io.TextIOWrapper' object is not subscriptable

Итак, как я могу прочитать f и извлечь x и y?

Теги:
numpy

1 ответ

1

Я уверен, что вам нужно использовать функцию загрузки для numpy файлов. Он загрузит его в массив, с помощью которого вы сможете хранить массивы в словаре, если это то, что вы хотите.

см. Загрузка массивов из файлов npz в pythhon

Ещё вопросы

Сообщество Overcoder
Наверх
Меню