Ruby NArray.to_na() и Python numpy.array()

Предположим, у меня есть следующая строка.

 irb(main):074:0> line = "#!/usr/bin/ruby\n#\n#  Gen"
 irb(main):078:0> NArray.to_na(line,Float)
 => NArray.float(3): 
 [ 9.05457e+164, 3.30198e-258, 6.1531e+223 ]

Как мне подражать этому поведению с Python, используя numpy.array?

Я попробовал следующее, но это не сработало.

>>> line = '#!/usr/bin/ruby\n#\n#  Gen'
>>> np.array(line,float)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: #!/usr/bin/ruby
#
#  Gen

Затем я попытался преобразовать его в байты, но это тоже не сработало.

>>> bytes = bytearray(line, 'utf-8')
>>> np.array(bytes,float)
array([  35.,   33.,   47.,  117.,  115.,  114.,   47.,   98.,  105.,
        110.,   47.,  114.,  117.,   98.,  121.,   10.,   35.,   10.,
         35.,   32.,   32.,   71.,  101.,  110.])

Как мне решить это?

1 ответ

Решение

Вы можете легко достичь этого, используя fromstring метод NumPy:

import numpy as np

line = "#!/usr/bin/ruby\n#\n#  Gen"
array = np.fromstring(line, dtype=float)
print array

Выполнение приведенного выше кода приводит к

[  9.05457127e+164   3.30197767e-258   6.15310337e+223]
Другие вопросы по тегам