Вы можете просто map()
до float
строк, полученных путем разбиения для ,
подстроки между [
и ]
:
s = 'tensor([ 9.8228e-01, -2.6578e-01, 9.6711e-01, -0.3274, -0.3205])'
list(map(float, s[s.find('[') + 1:s.find(']')].split(',')))
# [0.98228, -0.26578, 0.96711, -0.3274, -0.3205]
или получить массив NumPy:
import numpy as np
np.fromiter(map(float, s[s.find('[') + 1:s.find(']')].split(',')), dtype=float)
# array([ 0.98228, -0.26578, 0.96711, -0.3274 , -0.3205 ])
РЕДАКТИРОВАТЬ
NumPy предлагает более быструю альтернативу, используя np.fromstring()
:
np.fromstring(s[s.find('['):], dtype=float, sep=', ')
, которая по существу является оптимизированной версиейиз вышеперечисленных. Обратите внимание, что вам все равно нужно удалить часть строки tensor
.