Как конвертировать
["1.1", "2.2", "3.2"]
к
[1.1, 2.2, 3.2]
в NumPy?
Что ж, если вы читаете данные в виде списка, просто сделайте это 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)
list
. Массивы Numpy намеренно имеют однородную типизацию. Если вы действительно хотите, вы можете использовать массив объектов (напримерnp.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)
). Однако массивы объектов не имеют существенных преимуществ перед использованием списка.Вы также можете использовать это
источник
Другой вариант - numpy.asarray :
Для Python 2 *:
в результате чего:
источник
Если у вас есть (или вы создаете) одну строку, вы можете использовать np.fromstring :
Обратите внимание,
x = ','.join(x)
преобразует массив x в строку'1.1, 2.2, 3.2'
. Если вы читаете строку из txt файла, каждая строка уже будет строкой.источник