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]