Загрузить файл JLD в Python - PullRequest
0 голосов
/ 26 июня 2018

У меня есть база данных, созданная в Юлии с пакетом JLD

Эта база данных содержит 2 элемента: вход и выход

В julia я могу загрузить его следующим кодом:

using JLD

data_in = load("file_path")["input"]
1×5 Array{Int64,2}:
 1  2  3  4  5

data_out = load("file_path")["output"]
1×5 Array{Int64,2}:
 3  6  9  12  15

Я хотел бы загрузить эти массивы в Python. Я попробовал следующее (в Python):

filename = "file_path"

data = open(filename, r)

данные возвращают следующее:

data
<_io.TextIOWrapper name='file_path' mode='r' encoding='UTF-8'>

После этого я прочитал документ, в котором объяснялось, как читать файл . Тем не менее, если я запущу следующее:

print(data.readlines())

У меня есть только этот вывод:

[]

Можно ли загрузить эти массивы в Python?

EDIT

Я пытался сделать эквивалент Джулии:

data = open("file_path")["input"]

Но есть эта ошибка:

TypeError: '_io.TextIOWrapper' object is not subscriptable

Может быть, есть другая функция для чтения файла?

1 Ответ

0 голосов
/ 26 июня 2018

Файлы Julia JLD имеют формат HDF5, поэтому вы можете прочитать их, например, с помощью. h5py как это:

import h5py
f = h5py.File("filename", "r")
f["input"].value, f["output"].value

Файл также будет содержать запись _creator с метаданными, сохраненными Юлией.

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

...