2015-10-14 37 views
0

我有一個列表,這基本上是這樣的:使用asarray返回類型錯誤:讀取緩衝區對象錯誤

toLocArray 

>>[['Location 1', 'RAILS', 0.10520972, 20000], 
['Location 2', 'ROADS', 0.377652629, 20000], 
['Location 3', 'RAILS', 0.12588421, 20000], 
['Location 4', 'ROADS', 0.377652629, 20000]] 

我要投它作爲一個ndarray,與指定的D型:

dtype = [('toLoc', 'a50'),('Network', 'a10'), ('timeCost', 'f8'), ('toLocCapacity', 'i4')] 
toLocArray = np.asarray(toLocArray, dtype=dtype) 

然而,我得到以下錯誤:

 89  dtype = [('toLoc', 'a50'),('Network', 'a10'), ('timeCost', 'f8'), ('toLocCapacity', 'i4')] 
---> 90  toLocArray = np.asarray(toLocArray,dtype=dtype) 
    91 
    92 

C:[path]\site-packages\numpy\core\numeric.pyc in asarray(a, dtype, order) 
    460 
    461  """ 
--> 462  return array(a, dtype, copy=False, order=order) 
    463 
    464 def asanyarray(a, dtype=None, order=None): 

TypeError: expected a readable buffer object 

從我讀過這種錯誤發生時試圖設置一個值wi這是錯誤的類型,但我不明白我在這裏如何做到這一點。如果我不使用「dtype =」子句,我可以使asarray函數正常工作,但我需要定義這些字段。我究竟做錯了什麼?

回答

0

我找到了一種方法來完成這項工作。不知道這是否是「正確」的做事方式,但是將元組應用於原始數據使其能夠滿足我的需求:

toLocArray = map(tuple, toLocArray) 
相關問題