Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dict到numpy多维数组_Python_Arrays_Numpy_Multidimensional Array - Fatal编程技术网

Python Dict到numpy多维数组

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

我有一个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.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]
,它会为数组提供太多索引