我正在尝试对非二次二维矩阵进行插值,但我只能使用 scipy interp2d 库以二次方式进行插值,如下例所示。
import numpy as np
from scipy import interpolate
d = np.array([[5 , 0, 4, 10],
[4, 0, 8, 10],
[3, 7, 5, 0 ],
[0, 2, 0, 1]])
y,x = np.where(d!=0)
f = interpolate.interp2d(x,y,d[d!=0],kind='linear')
X = np.arange(len(d))
print(f(X,X))
[[ 5. 4.21172217 4. 10. ]
[ 4. 6. 8. 10. ]
[ 3. 7. 5. -61.64307857]
[ 1.90754706 2. 1.99969264 1. ]]
我的问题是如何对维度为 6000x5000 的矩阵执行插值,该矩阵不是二次的,并且有许多数字,它介于零值之间,例如 4x4 矩阵的示例。