如何将字符串数组转换为numpy中的浮点数组?
答
那么,如果你正在读取列表中的数据,只需做np.array(map(float, list_of_strings))
(或等价地使用列表理解)。 (在Python 3,你需要调用list
在map
返回值,如果你使用map
,因为map
返回迭代器)。
但是,如果它已经字符串numpy的阵列,有一个更好的办法。使用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)
答
如果您有(或创建)一个字符串,你可以使用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文件读取一行,则每行都将是一个字符串。
如果你有一个数组,我想维护一个字符串?像['a','1.1','2.2','3.3'] - > ['a',1.1,2.2,3.3] – ePascoal 2015-05-09 20:09:21
@MrMartin - 然后使用'list'。 Numpy阵列是故意均匀输入的。如果你真的想要,你可以使用一个对象数组(例如'np.array(['apple',1.2,1,{'b'= None,'c'= object()}],dtype = object)') 。但是,与使用列表相比,对象数组没有任何显着的优势。 – 2015-05-09 20:14:35