Mec*_*nic 0 python arrays numpy multidimensional-array
我有一个带有键的 python 字典,(0,1,2....n)每个键都包含一个元组中的位置坐标,例如
{0:(x1,y1), 1:(x2,y2), 2:(x3,y3), ....., n-1:(xn,yn)}
Run Code Online (Sandbox Code Playgroud)
我想创建一个多维数组,如
coordinates= np.array([
[x1, y1],
[x2, y2],
...
[xn, yn]
])
Run Code Online (Sandbox Code Playgroud)
我尝试使用array = numpy.array(vehPositions.values())但无法获得预期的结果。
如果您使用的是 python 3.x,您应该显式地强制转换list为将返回一个对象的values() 方法。dictdict_values
你应该做:
array = numpy.array(list(vehPositions.values()))
Run Code Online (Sandbox Code Playgroud)
要从字典中的元组值创建列表列表并构建数组,您不需要显式转换为list:
array = numpy.array([list(v) for v in vehPositions.values()])
Run Code Online (Sandbox Code Playgroud)
注意不要使用生成器表达式,因为这将返回一个包含生成器对象的数组:
>>> numpy.array(list(v) for v in vehPositions.values())
array(<generator object <genexpr> at 0x03B60AA8>, dtype=object)
Run Code Online (Sandbox Code Playgroud)
下面的试验演示了该过程:
>>> d = {0: (1,2), 1: (3,4), 2: (5,6)}
>>> numpy.array([list(v) for v in d.values()])
array([[1, 2],
[3, 4],
[5, 6]])
Run Code Online (Sandbox Code Playgroud)