Сохранить массив 3D numpy с высокой скоростью на диск - PullRequest
0 голосов
/ 29 января 2020

У меня массив размером numpy (192,192,4000). Я бы хотел быстро записать это на диск. Мне плевать на формат, я могу преобразовать его потом.

Теперь я пишу, что сохраняю его в формате csv, который занимает много времени:

for i in range(0,192):
        np.savetxt(foder+"/{}_{}.csv".format(filename,i), data[i] , "%i", delimiter=", ")

, что занимает 20-25 секунд. Я попробовал pandas DataFrame и Panel подходы, уже найденные в вопросах stackoverflow и numpy save. Кажется, что все они работают без ошибок, но папка пуста, когда я ее открываю.

Есть идеи, как улучшить скорость?

Почему код выполняется без ошибок, но ничего не сохраняется, например, для numpy .save ?!

1 Ответ

2 голосов
/ 29 января 2020

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

a = numpy.zeros((192,192,4000))
numpy.save("mydata.npy",a)
b = numpy.load("mydata.npy")

Конечно, файл "mydata.npy" должен находиться в данном каталоге после команды сохранения.

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