Чтение элементов Unicode в массив numpy

Рассмотрим текстовый файл с именем "new.txt", содержащий следующие элементы:

μm
∂r
∆λ

В Python 2.7 я могу прочитать файл, набрав :

>>> import codecs
>>> f = codecs.open('new.txt', encoding='utf-8')
>>> lines = [line.strip() for line in f2.readlines()]
>>> lines
[u'\u03bcm', u'\u2202r', u'\u2206\u03bb']
>>> print lines[0]
μm

Пока все хорошо. Я могу легко преобразовать этот список в массив numpy с помощью:

>>> import numpy as np
>>> arr = np.array(lines)
>>> arr
array([u'\u03bcm', u'\u2202r', u'\u2206\u03bb'], 
      dtype='<U2')

Проблема в том, что я не могу прочитать этот файл напрямую с помощью функции loadtxt numpy:

>>> np.loadtxt('new.txt', dtype=np.unicode_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/numpy/lib/npyio.py", line 805, in loadtxt
    X = np.array(X, dtype)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)

Каков правильный способ прочитать этот файл в numpy напрямую?

Спасибо.

10
задан Gökhan Sever 16 June 2011 в 16:30
поделиться