Как преобразовать массив строк в массив float в numpy?
Как конвертировать
["1.1", "2.2", "3.2"]
в
[1.1, 2.2, 3.2]
в NumPy?
Ответ 1
Хорошо, если вы читаете данные в виде списка, просто сделайте np.array(map(float, list_of_strings)) (или, что то же самое, используйте понимание списка). (В Python 3 вам нужно вызвать list в возвращаемом значении map, если вы используете map, так как map теперь возвращает итератор.)
Однако, если это уже многомерный массив строк, лучший способ. Используйте astype().
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
Ответ 2
Вы также можете использовать это
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
Ответ 3
Если у вас есть (или создать) одну строку, вы можете использовать np.fromstring:
import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring( x, dtype=np.float, sep=',' )
Примечание. x = ','.join(x) преобразует массив x в строку '1.1, 2.2, 3.2'. Если вы читаете строку из txt файла, каждая строка будет уже строкой.