python - 在numpy中提取数字数组函数的值

标签 python numpy

如果我定义一个包含两个数组的函数,例如:

from numpy import *
x = arange(-10,10,0.1)
y = x**3

如何提取 y(5.05) 的值对两个较近点 y(5) 和 y(5.1) 的值进行插值?现在如果我想找到那个值,我使用这个方法:

y0 = y[x>5][0]

我应该为 x=5.1 获取 y 的值,但我认为存在更好的方法,并且可能是正确的方法。

最佳答案

numpy.interp ,如果线性插值就足够了:

>>> import numpy as np
>>> x = np.arange(-10, 10, 0.1)
>>> y = x**3
>>> np.interp(5.05, x, y)
128.82549999999998
>>> 5.05**3
128.787625

scipy 中有一堆工具用于插值 [docs] :

>>> import scipy.interpolate
>>> f = scipy.interpolate.UnivariateSpline(x, y)
>>> f
<scipy.interpolate.fitpack2.LSQUnivariateSpline object at 0xa85708c>
>>> f(5.05)
array(128.78762500000025)

关于python - 在numpy中提取数字数组函数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598867/

相关文章:

python - Python 中的 all(map) 和 any(map) 输出 bool 值,但 IPython 中输出 true 映射对象

python - 如何更改 Jupyter Notebook 内核显示名称

python - 如何将 numpy 数组写入 csv 文件?

python - 如何处理多个关键字参数?

python - 如何在不知道高度的情况下使用 python selenium 向下滚动?

python - 如何在 python 中分块读取大图像?

python - 为什么我们在这里需要字节顺序?

python - 如何覆盖 NumPy 的 ndarray 和我的类型之间的比较?

python - Matplotlib - 箱线图根据 log10 值计算但以对数刻度显示

python - 如何对 pandas 数据框中的列进行迭代和执行操作