Answers:
好吧,如果您是以列表的形式读取数据,则可以这样做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)
list
。Numpy数组是故意同类型的。如果确实需要,可以使用对象数组(例如np.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)
)。但是,对象数组与使用列表相比没有任何明显的优势。
另一个选项可能是numpy.asarray:
import numpy as np
a = ["1.1", "2.2", "3.2"]
b = np.asarray(a, dtype=np.float64, order='C')
对于Python 2 *:
print a, type(a), type(a[0])
print b, type(b), type(b[0])
导致:
['1.1', '2.2', '3.2'] <type 'list'> <type 'str'>
[1.1 2.2 3.2] <type 'numpy.ndarray'> <type 'numpy.float64'>