如何将string数组转换为numpy中的浮点数组?

如何从中获得

["1.1", "2.2", "3.2"] 

 [1.1, 2.2, 3.2] 

在NumPy?

那么,如果你正在读取列表中的数据,只需要执行np.array(map(float, list_of_strings)) (或者等价地使用list comprehension)。 (在Python 3中,如果使用map ,则需要在map返回值上调用list ,因为map现在返回一个迭代器。)

但是,如果它已经是一个数组的string,那么有一个更好的方法。 使用astype()

 import numpy as np x = np.array(['1.1', '2.2', '3.3']) y = x.astype(np.float) 

你也可以使用这个

 import numpy as np x=np.array(['1.1', '2.2', '3.3']) x=np.asfarray(x,float) 

如果你有(或创build)一个string,你可以使用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数组转换为string'1.1, 2.2, 3.2' 。 如果你从一个txt文件中读取一行,每一行都将是一个string。