python - 有没有办法为 interp1d 配置变量 fill_values?
问题描述
我不知道我的问题是否很清楚,我很抱歉。这是我将用来说明我需要做什么的示例:
from scipy.interpolate import interp1d
intertest = interp1d([500, 1000], [-1, 1])
mylist = [400, 500, 1000, 1100]
list2 =intertest(mylist)
print(list2)
显然,我得到一个 ValueError 因为插值范围之外的值(400 和 1100)。但我想知道是否可以设置一个配置,使范围外的值变为范围内最接近的值(400 将变为 500,1100 将变为 1000),在这种情况下,结果将为 [-1, -1, 1, 1]。
在实际情况下,数据确实很大,所以如果解决方案是插值配置会更好,因为它可以直接应用于数据数组。
预先感谢您的帮助。
解决方案
您应该在之前修改列表interp1d
:[min(x_max, max(x_min, s)) for s in mylist_tmp]
from scipy.interpolate import interp1d
x_min=500
x_max=1000
intertest = interp1d([x_min, x_max], [-1, 1])
mylist_tmp = [400, 500, 1000, 1100]
mylist=[min(x_max, max(x_min, s)) for s in mylist_tmp]
list2 =intertest(mylist)
print(list2)
推荐阅读
- python - 从 groupBy 中分离列会导致 pandas
- javascript - 当我在选择标签中选择一个选项时如何打开一个新标签?
- javascript - 如何在 hbs 文件中使用外部文件中的 javascript 方法
- spring-batch - Spring Batch - 我们可以在循环中使用日期列从数据库中读取项目吗
- angular - Mat-error 无法与 mat-select 一起正常工作
- laravel - 无法在 Laravel 中更新数组数据
- amazon-quicksight - 是否可以检索由 AWS QuickSight 生成的预测?
- python - Python - Matplotlib:从单轴上的多个 pcolormesh 收集数据
- javascript - 如何解决分页问题?
- django - 使用来自 cookie 的 Django 会话 ID 来验证 Vue 应用程序