我有一个列表,基本上看起来像:
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]]
我希望将其转换为带有指定dtype的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函数工作。子句,但我需要定义字段。我做错了什么?
答案 0 :(得分:0)
我找到了一种方法来完成这项工作。不知道这是不是"对"做事的方式,但将元组应用于原始数据使它做我需要的:
toLocArray = map(tuple, toLocArray)