Python Dict到numpy多维数组
我有一个python字典,其中包含键Python Dict到numpy多维数组,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,我有一个python字典,其中包含键(0,1,2…n),每个键都包含元组中的位置坐标,例如 {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.va
(0,1,2…n)
,每个键都包含元组中的位置坐标,例如
{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())
,但未能获得预期的结果。如果您使用的是python 3.x,您应该显式强制转换到list
,因为dict
的values()
方法将返回一个dict\u 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)
如果您使用的是Python3.x,您应该显式地强制转换到
list
,因为dict
的values()
方法将返回一个dict\u 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)
为什么numpy.array(vehPositions.values())
?值的顺序是不同的还是错误的?我只得到一个类型(对象)的数组,比如数组(dict_值([(x1,y1),(x2,y2),…])
。如果我使用array(x)
,它会返回'numpy.ndarray'对象不可调用。如果我使用array[x]
,它会为数组提供太多索引为什么numpy.array(vehPositions.values())
不起作用?值的顺序是不同的还是错误的?我只得到一个类型(对象)的数组,比如数组(dict_值([(x1,y1),(x2,y2),…])
。如果我使用array(x)
,它会返回'numpy.ndarray'对象不可调用。如果我使用array[x]
,它会为数组提供太多索引