Python 使用asarray返回TypeError:可读缓冲区对象错误

Python 使用asarray返回TypeError:可读缓冲区对象错误,python,Python,我有一个列表,基本上如下所示: 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: dtype

我有一个列表,基本上如下所示:

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:

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 

据我所知,当试图用错误的类型设置一个值时,会发生这种错误,但我不知道我在这里怎么做。如果不使用dtype=子句,我可以让asarray函数工作,但我需要定义字段。我做错了什么?

我找到了一个办法让这一切顺利进行。我不知道这是否是正确的方法,但对原始数据应用元组可以使其满足我的需要:

toLocArray = map(tuple, toLocArray)