scipy-interpolation scipy插值運算

Scipy還是需要較強的數學基礎。需要學習。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate


def main():
    x = np.linspace(0, 1, 10)      #插值算法#插值:通過已知的離散數據來求解未知數據的方法,要求曲線通過所有的已知數據。
      #擬合:要求曲線函數與已知數據集的誤差最小,不要求曲線通過所有的已知數據。#
    y = np.sin(2 * np.pi * x)
    li = interpolate.interp1d(x,y,kind="cubic")#三階B樣條曲線#
    #interpld可以計算x的取值範圍之內任意點的函數值,並返回新的數組。#
    #參數x和y是一系列已知的數據點#
    #參數kind是插值類型,可以是字符串或整數#
    x_new = np.linspace(0,1,50)
    y_new =li(x_new)#給出x、y取值範圍#
    plt.figure()
    plt.plot(x,y,"r")#紅色表示原來數據#
    plt.plot(x_new,y_new,"b")#藍色表示新數據#
    plt.show()
    print (y_new)
if __name__ == "__main__":
    main()
 
發佈了39 篇原創文章 · 獲贊 7 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章