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