2013-12-20 297 views
1

多維數組numpy的我有三個列表,創建一個從列表

list1=['10','20','30'] 

list2=['40','50','60'] 

list3=['70','80','90'] 

我要創建這些列表中的一個numpy的陣列。我使用的foloowing代碼:

import numpy as np 
list1=['10','20','30'] 
list2=['40','50','60'] 
list3=['70','80','90'] 

data = np.array([[list1],[list2],[list3]]) 
print data 

我得到輸出:

[[['10' '20' '30']] 
    [['40' '50' '60']] 
    [['70' '80' '90']]] 

但我期待輸出:

[[10 20 30] 
[40 50 50] 
[70 80 90]] 

可有人plz幫助我在這?

回答

2

指定dtype

>>> import numpy as np 
>>> list1=['10','20','30'] 
>>> list2=['40','50','60'] 
>>> list3=['70','80','90'] 
>>> np.array([list1, list2, list3], dtype=int) 
array([[10, 20, 30], 
     [40, 50, 60], 
     [70, 80, 90]]) 

根據numpy.array documentation

dtype:數據類型,可選

所需的數據類型爲陣列。如果沒有給出,那麼將 確定爲保存 序列中的對象所需的最小類型。 ...

+0

可能值得一提的是,指定dtype會導致數據類型從字符串轉換爲整數範圍內的整數。 – alko

+0

@alko,感謝您的評論。我通過文檔中的引用更新了答案。 – falsetru

+0

非常感謝@falsetru – Anand