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)