Python 将x,y坐标表示为numpy数组

Python 将x,y坐标表示为numpy数组,python,numpy,Python,Numpy,我有一个dict,其中包含单元格名称及其位置(x,y坐标)作为值。我能够为键创建一个2*2 numpy数组。然而,我不能对价值观做同样的事情。我试图为每个元素都是(x,y)而不是[x,y]的值创建一个2*2数组 cells_position Out[367]: {'A1': [-28, 28], 'A2': [-28, 20], 'B1': [-20, 28], 'B2': [-20, 20]} cells_array=np.array(list(cells_position

我有一个dict,其中包含单元格名称及其位置(x,y坐标)作为值。我能够为键创建一个2*2 numpy数组。然而,我不能对价值观做同样的事情。我试图为每个元素都是(x,y)而不是[x,y]的值创建一个2*2数组

cells_position
Out[367]: 
{'A1': [-28, 28],
 'A2': [-28, 20],     
 'B1': [-20, 28],
 'B2': [-20, 20]}

cells_array=np.array(list(cells_position.keys()))
cells_array=np.reshape(cells_array, (2, 2)).transpose()

cells_array
Out[369]: 
array([['A1', 'B1'],
       ['A2', 'B2']], dtype='<U2')

诀窍是创建一个dtype对象的空数组,然后用您的值填充它

下面生成预期的输出或me

import numpy as np
cells_position = {'A1': [-28, 28], 'A2': [-28, 20],'B1': [-20, 28], 'B2': [-20,20]}
values = [tuple(value) for value in cells_position.values()]
cells_array = np.empty(len(values), dtype=object)
cells_array[:] = values
cells_array=np.reshape(cells_array, (2, 2)).transpose()

您将元素称为
(x,y)
而不是
[x,y]
是什么意思?你是说元组数组吗?@Navaro我已经更新了这个问题。是的,我指的是元组数组。
import numpy as np
cells_position = {'A1': [-28, 28], 'A2': [-28, 20],'B1': [-20, 28], 'B2': [-20,20]}
values = [tuple(value) for value in cells_position.values()]
cells_array = np.empty(len(values), dtype=object)
cells_array[:] = values
cells_array=np.reshape(cells_array, (2, 2)).transpose()