2010-10-06 173 views

回答

106

那麼,如果你正在讀取列表中的數據,只需做np.array(map(float, list_of_strings))(或等價地使用列表理解)。 (在Python 3,你需要調用listmap返回值,如果你使用map,因爲map返回迭代器)。

但是,如果它已經字符串numpy的陣列,有一個更好的辦法。使用astype()

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

如果你有一個數組,我想維護一個字符串?像['a','1.1','2.2','3.3'] - > ['a',1.1,2.2,3.3] – ePascoal 2015-05-09 20:09:21

+4

@MrMartin - 然後使用'list'。 Numpy陣列是故意均勻輸入的。如果你真的想要,你可以使用一個對象數組(例如'np.array(['apple',1.2,1,{'b'= None,'c'= object()}],dtype = object)') 。但是,與使用列表相比,對象數組沒有任何顯着的優勢。 – 2015-05-09 20:14:35

1

您可以使用此以及

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

如果您有(或創建)一個字符串,你可以使用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文件讀取一行,則每行都將是一個字符串。

相關問題