【发布时间】:2020-11-08 19:39:59
【问题描述】:
我创建了一个大小为 50 的数组,例如没有任何值,然后我在随机索引处插入 3 个值,然后我想通过在这些值之间进行插值来填充数组的其余部分。
首先我创建我的数组:
n = 50
a = [None]*n
这给了我一个 50 个插槽的“空数组”:
[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]
然后我用值手动替换随机选择的几个“无”:
a.pop(0)
a.insert(0,0)
a.pop(10)
a.insert(10,50)
a.pop(49)
a.insert(49,25000)
给出这个:
[0, None, None, None, None, None, None, None, None, None, 50, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 25000]
如何填充数组的其余部分,即用我手动添加到数组中的值之间的线性插值计算的实际值替换“无”?
【问题讨论】:
-
能用numpy、pandas、scipy等库吗?
-
非常感谢 jonrsharpe、Mr.T 和 ted!这两个答案对我帮助很大,我选择了 Pandas 方式,不知道这个库,而且很简单! a = pandas.Series(a).interpolate().values.round(2).tolist() 干了!
标签: python arrays python-3.x interpolation