Я пытаюсь импортировать txt со строками и столбцами чисел, используя функцию numpy.genfromtxt. По существу мне нужен массив строк. Вот пример txt, который дает мне проблемы:numpy genfromtxt проблемы с .txt input
H2S 1.4
C1 3.6
txt кодируется как unicode. Вот код, я использую:
import numpy as np
decodf= lambda x: x.decode('utf-16')
sample = np.genfromtxt(('ztest.txt'), dtype=str,
converters = {0:decodf, 1:decodf},
delimiter='\t',
usecols=0)
print(sample)
Вот результат:
['H2S' 'None']
Я попробовал несколько способов исправить эту проблему. По не поставив DTYPE = None и устранение конвертера, я получаю:
[b'\xff\xfeH\x002\x00S' b'\x00g\x00\xe8\x00n']
Я также попытался избавляя от преобразователя и положить DTYPE = ул и получил:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
Я понимаю, что это хлопотно функция. Я видел разные варианты (например: here), но не смог заставить кого-либо работать.
Что я делаю неправильно? Тем временем я смотрю на Pandas ... Заранее спасибо
Привет, спасибо за ответ. Ваш код дает 'TypeError: Невозможно преобразовать объект 'bytes' в str неявно. – Mstaino
А, правильно. Я использовал python 2.7. Я получаю ту же ошибку, когда я использую python 3.4. –