【Python】NumPyのtrapz()で複合台形則により指定した軸に沿って数値積分する方法
指定した軸に沿って複合台形則(composite trapezoidal rule)による数値積分を実行するには、numpy.trapz() メソッドを使用します。x が指定された場合、積分はその要素の並び順に従って処理されます(要素が自動的にソートされることはありません)。このメソッドは、台形則によって単一の軸に沿って近似された n 次元配列 y の定積分を返します。y が1次元配列の場合、結果は float 型になります。次元数 n が1より大きい場合は、「n-1」次元の配列が返されます。
主なパラメータ
- 第1引数:y … 積分対象となる入力配列。
- 第2引数:x … y の各値に対応するサンプル点。x を指定しない場合(None の場合)、サンプル点は間隔 dx の等間隔に配置されているものとみなされます。デフォルトは None です。
- 第3引数:dx … x が None のときのサンプル点間の間隔。デフォルトは 1 です。
- 第4引数:axis … 積分を実行する軸。
なお、NumPy 2.0 以降では np.trapz は非推奨となり、代わりに np.trapezoid の使用が推奨されています。古いバージョンとの互換性が必要な場合を除き、新しい環境では trapezoid を利用するとよいでしょう。
実行手順
まず、必要なライブラリをインポートします。
import numpy as np
arange() メソッドを使って numpy 配列を作成します。ここでは int 型の要素を持つ配列を作成しています。
arr = np.arange(9).reshape(3, 3)
配列を表示して確認します。
print("Our Array...\n",arr)配列の次元数を確認します。
print("\nDimensions of our Array...\n",arr.ndim)データ型を確認します。
print("\nDatatype of our Array object...\n",arr.dtype)複合台形則により指定した軸(ここでは axis=0)に沿って積分を実行します。
print("\nResult (trapz)...\n",np.trapz(arr, axis = 0))コード例
import numpy as np
# arange() メソッドを使って numpy 配列を作成
# int 型の要素を持つ配列を作成している
arr = np.arange(9).reshape(3, 3)
# 配列を表示
print("Our Array...\n",arr)
# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)
# データ型を確認
print("\nDatatype of our Array object...\n",arr.dtype)
# 複合台形則により指定した軸に沿って積分を実行
print("\nResult (trapz)...\n",np.trapz(arr, axis = 0))実行結果
Our Array... [[0 1 2] [3 4 5] [6 7 8]] Dimensions of our Array... 2 Datatype of our Array object... int64 Result (trapz)... [ 6. 8. 10.]
このように、axis=0 を指定することで各列方向に台形則の積分が適用され、結果として [6. 8. 10.] という float 型の配列が得られます。同様に axis=1 を指定すれば、行方向の積分結果を取得できます。
-
PythonでNaNを0として扱い、指定した軸に沿った配列要素の累積和を返す方法
NumPyでNaN(非数)を0として扱いながら、指定した軸に沿って配列要素の累積和を計算するには、nancumsum()メソッドを使用します。このメソッドには以下のような特徴があります。 NaNに遭遇しても累積和は変化せず、先頭のNaNは0に置き換えられます すべてがNaNのスライスや空のスライスに対しては0が返されます out引数が指定されない限り、結果を格納する新しい配列が返されます 結果は入力配列aと同じサイズを持ち、axisがNoneでない場合またはaが1次元配列の場合は同じ形状になります nancumsum()のパラメータ 第1パラメータ(a): 入力配列です。 第2パラメータ(
-
PythonでNaNを0として扱い、軸0に沿った配列要素の累積和を返す方法
NaN(非数)をゼロとして扱いながら、指定した軸に沿って配列要素の累積和を返すには、NumPyのnancumsum()メソッドを使用します。このメソッドの特徴は以下の通りです。累積和の計算中にNaNが現れても、それ以降の累積和の値は変化しません先頭に現れたNaNはゼロに置き換えられますすべてがNaNであるスライスや空のスライスに対しては、ゼロが返されます累積和とは、「5」「5+10」「5+10+15」「5+10+15+20」のように、それまでの要素を順番に足し合わせていく計算のことです。nancumsum()メソッドのパラメータ第1パラメータ(入力配列): 累積和を計算する対象となる配列です。