Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python – scipy.interpolate.interp1dで1次元補間を行う方法


scipy.interpolateパッケージに含まれるinterp1d()関数は、1次元関数の補間(インターポレーション)を行うための機能です。xとyといった値の配列を受け取り、何らかの関数y = f(x)を近似したうえで、補間によって新しい点における値を求めることができます。データ points 間の値を滑らかに推定したい場合に非常に便利なツールです。

構文

scipy.interpolate.interp1d(x, y)

ここで、xは実数値からなる1次元配列、yは実数値からなるN次元配列です。補間軸に沿ったyの長さは、xの長さと一致している必要があります。

例1

まず、次の例を見てみましょう。

# 必要なライブラリをインポート
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

# 図のサイズを設定
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcParams["figure.autolayout"]=True

# 値を定義
x = np.arange(0, 10)
y = np.exp(-x/5.0)

# 入力データ
plt.subplot(1,2,1)
plt.title("Input X and Y")
plt.plot(x,y)

# 補間されたデータ
plt.subplot(1,2,2)
plt.title("Interpolated")
f = interpolate.interp1d(x, y)
x_new = np.arange(0, 7, 0.7)
y_new = f(x_new)
plt.plot(x_new, y_new, 's')

plt.show()

出力結果

上記のプログラムを実行すると、次のような出力が得られます。左側に元の入力データ、右側に補間後のデータがプロットされ、元の点の間が滑らかな曲線で埋められていることが確認できます。

Python – scipy.interpolate.interp1dで1次元補間を行う方法

例2

続いて、別の例を見てみましょう。

# 必要なライブラリをインポート
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

# 図のサイズを設定
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcParams["figure.autolayout"]=True

# 値を定義
x = np.arange(0, 10)
y = np.exp(-x **2/9.0)

# 補間関数を作成
f = interpolate.interp1d(x, y)
xnew = np.arange(0, 9, 1.2)
plt.plot(x, y, 'o', xnew)

plt.show()

出力結果

上記のプログラムを実行すると、次のような出力が得られます。ガウス関数的な減衰カーブに対して補間が適用され、新しいx座標におけるyの値が求められています。

Python – scipy.interpolate.interp1dで1次元補間を行う方法


  1. Python Matplotlib:サブプロットでX軸目盛り(xticks)を設定する方法

    Matplotlibのsubplot機能を使うと、1つの図(figure)をnrows×ncolsのグリッド状に分割して複数のグラフを並べて表示できます。さらにplt.xticksを組み合わせることで、各サブプロットのX軸目盛りの位置を自由に制御することが可能です。 実装手順 1本目と2本目の折れ線用に、それぞれデータのリストを作成します。 現在の図にサブプロットを追加します(nrow=1、ncols=2、index=1)。 破線(dashed)スタイルで1本目の折れ線を描画します。 自動スケーリングのマージンを設定します(0.2)。 X軸目盛りを偶数の位置(2, 4, 6, 8, 10)に

  2. 【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)

    はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい