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

【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 を指定すれば、行方向の積分結果を取得できます。

  1. PythonでNaNを0として扱い、指定した軸に沿った配列要素の累積和を返す方法

    NumPyでNaN(非数)を0として扱いながら、指定した軸に沿って配列要素の累積和を計算するには、nancumsum()メソッドを使用します。このメソッドには以下のような特徴があります。 NaNに遭遇しても累積和は変化せず、先頭のNaNは0に置き換えられます すべてがNaNのスライスや空のスライスに対しては0が返されます out引数が指定されない限り、結果を格納する新しい配列が返されます 結果は入力配列aと同じサイズを持ち、axisがNoneでない場合またはaが1次元配列の場合は同じ形状になります nancumsum()のパラメータ 第1パラメータ(a): 入力配列です。 第2パラメータ(

  2. PythonでNaNを0として扱い、軸0に沿った配列要素の累積和を返す方法

    NaN(非数)をゼロとして扱いながら、指定した軸に沿って配列要素の累積和を返すには、NumPyのnancumsum()メソッドを使用します。このメソッドの特徴は以下の通りです。累積和の計算中にNaNが現れても、それ以降の累積和の値は変化しません先頭に現れたNaNはゼロに置き換えられますすべてがNaNであるスライスや空のスライスに対しては、ゼロが返されます累積和とは、「5」「5+10」「5+10+15」「5+10+15+20」のように、それまでの要素を順番に足し合わせていく計算のことです。nancumsum()メソッドのパラメータ第1パラメータ(入力配列): 累積和を計算する対象となる配列です。