zoukankan      html  css  js  c++  java
  • 【数据分析&数据挖掘】拉格朗日插值法

     1 from scipy.interpolate import lagrange
     2 import pandas as pd
     3 import numpy as np
     4 
     5 # 加载数据
     6 data = pd.read_excel("./qs.xlsx")
     7 # print("data: 
    ", data)
     8 print("data的列索引: 
    ", data.columns)
     9 
    10 # 设置使用缺失值前后的n个来进行构建拉格朗日关系
    11 n = 5
    12 
    13 # 循环查看缺失值的位置
    14 for i in range(data.shape[0]):
    15     print(i)
    16     # 判断如果是缺失值,就进行插值
    17     if np.isnan(data.iloc[i, 1]):
    18         print("第%d行为缺失值"%i)
    19         if i-n < 0:
    20             start=0
    21         else:
    22             start=i-n
    23         # 获取缺失值的前后n个数据——这前后n个数据是否存在缺失值
    24         mask = data.iloc[start: i+n+1, 1]
    25         # 获取index
    26         x = mask.index
    27         print("x: 
    " ,x)
    28         # 将含有缺失值的行的索引去掉
    29         x = x[mask.notnull()]
    30         print("x: 
    ", x)
    31         # 不管有无缺失值,去除掉其中含有缺失值的部分
    32         y = mask[mask.notnull()].values  # 含有缺失值的数组
    33         print("y: 
    ", y)
    34         # 构建拉格朗日多项式, 返回拉格朗日多项式对象
    35         la = lagrange(x=x, w=y)
    36         # 使用拉格朗日多项式进行插值
    37         data.iloc[i, 1] = la([i])
    38 print("插值完成之后的结果: 
    ", data)
  • 相关阅读:
    一些名词解释
    less那些事儿
    正则表达式检测汉字
    正则匹配括号中内容
    atom中vue高亮支持emmet语法
    正则匹配标签内内容
    联想一体机u盘启动设置
    vuejs时间格式化
    graphicsmagick常用命令
    js中对象的深度复制
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12116101.html
Copyright © 2011-2022 走看看