我希望做这样的事情,我有一个包含坐标的ndarray,以及一个包含值的文件,如scipy.interpolate.griddata所需
import numpy
p = {(1,2):10, (0,2):12, (2,0):11}
coords, values = np.array([(np.array(k),v) for k,v in p.items()]).T
但是,我也希望能够做到以下几点:
x = coords[:,0]
y = coords[0,:]
np.mgrid[x.min():x.max():5j, y.min():y.max():5j]
但是,我收到了错误:
IndexError: too many indices for array
代表x = coords[:,0].
我做错了什么?
答案 0 :(得分:2)
因为您将np.array
放入np.array
,内部np.array
是一个整体,外部np.array
无法识别。实际上,您的coords
形状为(3,)
。
正确的方式:
coordsx, coordsy, values = np.array([(kx, ky, v) for (kx, ky), v in p.items()]).T