Неожиданная ошибка типа при использовании numpy.save (и savez) - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь использовать savez и load методы numpy, чтобы (удивить) сохранить и загрузить массивы numpy, которые достаточно велики, чтобы метод, который я использовал ранее ( сохранение в формате JSON) заметно медленнее.

Я воспроизвел проблему, с которой столкнулся, в следующем фрагменте кода:

import numpy

test_path = "test.npy"
test_data = numpy.random.rand(100000)

with open(test_path, 'w') as test_file:
    numpy.save(test_file, test_data)

При запуске я получаю следующую ошибку:

TypeError: write() argument must be str, not bytes

Я смог обойти это, вместо этого передав numpy.save путь непосредственно в виде строки:

numpy.save(test_path, test_data)

Тем не менее, я нахожу эту ошибку странной, так как согласно моему прочтению документации, numpy.save должен принимать открытый подобный файлу объект напрямую. Я что-то упустил?

1 Ответ

0 голосов
/ 17 января 2019

Вы открываете файл и затем сохраняете его в тот файл, который вы открыли, numpy.save не нужен указатель файла, который указывает на открытый файл, но путь к файлу, поэтому код должен быть,

numpy.save(test_path, test_data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...