如何将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。