我希望做这样的事情,其中我有一个包含坐标的 ndarray 和一个包含值的 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 = 坐标[:,0]。
我做错了什么?
最佳答案
因为你输入了 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
关于python - 索引错误 : too many indices for np. 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48745432/