gpt4 book ai didi

python - scipy 样条插值与 interp1d IndexError

转载 作者:太空宇宙 更新时间:2023-11-03 19:11:39 25 4
gpt4 key购买 nike

我正在尝试开始使用 scipy,但似乎无法从 interpolation.interp1d 获取示例当使用“线性”以外的类型时工作(我尝试了“零”和“三次”)。

我在 Google 中搜索时找不到遇到同样问题的人,所以我想这对我来说是愚蠢的事情。

我在 python 2.73 和 OSX 10.8 上使用 scipy 0.11

代码不起作用:

from scipy import interpolate
import numpy as np

x = np.arange(0, 10)
y = np.exp(-x/3.0)
f = interpolate.interp1d(x, y, kind="zero")
xnew = np.arange(0,9, 0.1)
ynew = f(xnew) # use interpolation function returned by `interp1d`
plt.plot(x, y, 'o', xnew, ynew, '-')
plt.show()
<小时/>
IndexError                                Traceback (most recent call last)
<ipython-input-1-23bb96a1589b> in <module>()
4 f = interpolate.interp1d(x, y, kind="zero")
5 xnew = np.arange(0,9, 0.1)
----> 6 ynew = f(xnew) # use interpolation function returned by `interp1d`
7 plt.plot(x, y, 'o', xnew, ynew, '-')
8 plt.show()

/usr/local/lib/python2.7/site-packages/scipy/interpolate/interpolate.pyc in __call__(self, x_new)
394 out_of_bounds = self._check_bounds(x_new)
395
--> 396 y_new = self._call(x_new)
397
398 # Rotate the values of y_new back so that they correspond to the

/usr/local/lib/python2.7/site-packages/scipy/interpolate/interpolate.pyc in _call_spline(self, x_new)
370 def _call_spline(self, x_new):
371 x_new =np.asarray(x_new)
--> 372 result = spleval(self._spline,x_new.ravel())
373 return result.reshape(x_new.shape+result.shape[1:])
374

/usr/local/lib/python2.7/site-packages/scipy/interpolate/interpolate.pyc in spleval((xj, cvals, k), xnew, deriv)
833 res[sl].imag = _fitpack._bspleval(xx,xj,cvals.imag[sl],k,deriv)
834 else:
--> 835 res[sl] = _fitpack._bspleval(xx,xj,cvals[sl],k,deriv)
836 res.shape = oldshape + sh
837 return res

IndexError: too many indices

在此处启动调试控制台时,我可以将其范围缩小到 cvals[sl],从而导致错误

sl = (slice(None, None, None), 0) # <-- I don't really get the slice part here...
cvals = array([ 1. , 0.71653131, 0.51341712, 0.36787944, 0.26359714,
0.1888756 , 0.13533528, 0.09697197, 0.06948345])

有人可以重现这个问题还是我的机器有问题?

最佳答案

看起来,在按照 OSX 上 scipy 的安装说明进行操作时,我安装了 numpy 的非发行版本,但没有意识到。

使用 pip 重新安装 numpy、scipy 和 matplotlib 解决了问题。

非常感谢unutbu指出问题的根源。

关于python - scipy 样条插值与 interp1d IndexError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com