我想插值数组值数据,即x值是一维的,但y值是(NumPy)数组。以下操作不起作用:
import numpy as np
xp = np.array([0.0, 1.0, 2.0])
yp = np.array(
[
[-1.1, 2.4, 5.1, 5.6],
[7.1, -2.1, 9.1, 31.0],
[1.1, 13.4, -5.2, 5.6],
]
)
np.interp(0.4, xp, yp)
个字符
有什么提示吗?
3条答案
按热度按时间o2gm4chl1#
字符串
fp
(yp
)参数应该是一个一维数组,它应该与xp
具有相同的长度。例如,对转置后的yp
的每个子列表调用interp
将有效型
输出量:
型
deyfvvtc2#
根据numpy文档
numpy.interp
返回函数的一维分段线性插值函数,该函数具有给定的离散数据点(xp,fp),在x处求值。
参数:xarray_like计算插值的x坐标。
xp 1-D浮点数序列数据点的x坐标,如果未指定参数周期,则必须递增。否则,在用xp = xp % period归一化周期边界之后,对xp进行内部排序。
fp 1-浮点或复数的D序列数据点的y坐标,与xp的长度相同。
但是在你的代码yp中,是2D数组。
你可以使用for循环对数组的每一个集合进行插值。
字符串
t9aqgxwy3#
正如其他人提到的,
np.interp
采用1Dyp
数组,但您提供的是2D数组。我将抛出另一个使用np.apply_along_axis
的选项。字符串
为了评论列表解析方法,您可以使用数组的转置来循环数据,而不是使用
range
和索引,随着数据量的增加,这将 * 稍微 * 快一点。型