numpy попробуйте прочитать двоичный файл из нескольких столбцов - PullRequest
0 голосов
/ 29 октября 2019

У меня есть файл numpy, и я хочу прочитать в 3 отдельных столбцах данных из одного файла. Я создал данные через три отдельных массива, где data1 = число с плавающей запятой и data2 = data3 = строка. Данные были сохранены так, что:

np.save (infofile, [data1, data2, data3])

Я могу прочитать файл и загрузить данные с помощью следующей команды:

data1, data2, data3 = np.load(infofile)

, где data1 будет значением с плавающей запятой, а data2 и data3 являются строками. Каждый будет длиной ~ 1000 строк. Когда я пытаюсь просмотреть данные, я получаю:

print(data1[0])
b'0.0'
print(data2[0])
b'10000'
print(data3[0])
b'20190831.230000'

Я знаю, что данные в двоичном формате, так как мне удалить предшествующий 'b' из всех данных, чтобы он выглядел так:

print(data1[0])
0.0
print(data2[0])
'10000'
print(data3[0])
'20190831.230000'

1 Ответ

1 голос
/ 29 октября 2019

Решение заключается в декодировании данных. utf-8 является обычной кодировкой, но если вы использовали другую кодировку, декодируйте данные, используя эту кодировку.

print(data1[0].decode("utf-8"))

даст:

'0.0'

Для каждого элемента в списках:

data1 = [float(item.decode("utf-8")) for item in data1]
data2 = [item.decode("utf-8") for item in data2]
data3 = [item.decode("utf-8") for item in data3]

, который будет декодировать каждый элемент в списке, а для data1 он будет анализировать элементы как числа с плавающей запятой.

...