Я использую genfromtxt для чтения данных.чтение сжатых данных дает разные результаты
genfromtxt должен работать и для файлов .gz, но, похоже, это не так.
Используя простые данные (не .gz файлы) содержание
f = open('file', 'r')
con = np.genfromtxt(f,dtype=str)
print con
print type(con)
файл является:
@HWI
ABCDE
+
@HWI7
EFSA
+
???=AF
[email protected]
GVTAWM
и выход выше код:
['@HWI' 'ABCDE' '+' '@HWI7' 'EFSA' '+' '???=AF' '[email protected]' 'GVTAWM']
<type 'numpy.ndarray'>
Если я просто использовать тот же код с файлом aboce, сжатым как .gz-файл, выход:
[ "\x1f\x8b\x08\x08\x1b4\x8eW\x00\x03file\x00Sp\xf0\x08\xf7\xe4R\x00\x02G'g\x17W0K\x1bL\x82$\xcc\xc1,W\xb7`G$"
'{{{[G70\xd3=\xc45\xd2\xc1' '\xca\x0e' 'q' '\xf7\x05' '\x06\x07\xc2P']
<type 'numpy.ndarray'>
И проблема в том, что я хочу выполнить некоторые вычисления позже, и мне это не понравится.
Я попробовал также (для версии .gz):
with gzip.open(file, 'r') as f:
con = np.array([f.read()])
print con
print type(con)
, который дает:
[ ' @HWI\n ABCDE\n +\n @HWI7\n EFSA\n +\n ???=AF\n [email protected]\n GVTAWM']
<type 'numpy.ndarray'>
который ближе к первоначальному, но по-прежнему не работает (не может двигаться дальше с расчетами)
Как я могу достичь того же результата?
Почему вы не используете 'genfromtxt' с файловым объектом из' gzip.открытый() '? – resi
вы пробовали 'gzip.open (" file "," rt ")'? По defualt 'gzip.open' открывается как двоичный –
@MutationalMeltdown: Я просто попробовал его. Остался тот же – George