IndexError:np.array的索引太多了

时间:2018-02-12 11:29:18

标签: python python-3.x numpy scipy

我希望做这样的事情,我有一个包含坐标的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].

我做错了什么?

1 个答案:

答案 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