Python Dict to numpy multidimensional array

时间:2016-06-29 13:37:51

标签: python arrays numpy multidimensional-array

我有一个带有键(0,1,2....n)的python字典,每个键将位置坐标放在一个元组中,例如

{0:(x1,y1), 1:(x2,y2), 2:(x3,y3), ....., n-1:(xn,yn)}

我想创建一个像

这样的多维数组
coordinates= np.array([
       [x1, y1],
       [x2, y2],
        ...
       [xn, yn]
       ])

我已尝试使用array = numpy.array(vehPositions.values())但无法获得预期的结果。

1 个答案:

答案 0 :(得分:3)

如果您正在使用python 3.x,则应明确强制转换为list,因为values()的{​​{1}}方法将返回dict个对象。

你应该这样做:

dict_values

要从字典中的元组值创建列表列表并构建数组,您不需要显式转换为array = numpy.array(list(vehPositions.values()))

list

小心不要使用生成器表达式,因为这将返回包含生成器对象的数组:

array = numpy.array([list(v) for v in vehPositions.values()])

以下试验说明了该程序:

>>> numpy.array(list(v) for v in vehPositions.values())
array(<generator object <genexpr> at 0x03B60AA8>, dtype=object)