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

PythonでNaNを無視して配列の最小値を取得する方法(numpy.nanminの使い方)

Pythonで配列の最小値を求める際、NaN(非数)を無視して計算したい場合は、NumPyのnumpy.nanmin()メソッドを使用します。このメソッドは、指定した軸が取り除かれた形状の配列を返します。入力が0次元配列の場合やaxisにNoneを指定した場合は、ndarrayスカラーが返されます。また、戻り値のdtypeは元の配列と同じになります。

numpy.nanmin()の主なパラメータ

第1引数:a

最小値を求めたい数値を含む配列です。配列以外のオブジェクトが渡された場合は、配列への変換が試みられます。

第2引数:axis

最小値を計算する軸(または複数の軸)を指定します。デフォルトでは、平坦化された配列全体に対して最小値が計算されます。

第3引数:out

結果を格納する代替の出力配列です。デフォルトはNoneです。指定する場合は、期待される出力と同じ形状である必要があります。型は必要に応じてキャストされます。

第4引数:keepdims

Trueに設定すると、縮小された軸がサイズ1の次元として結果に残ります。このオプションにより、結果は元の配列aに対して正しくブロードキャストされます。デフォルト以外の値が指定された場合、keepdimsはndarrayのサブクラスのmaxメソッドに引き継がれます。サブクラスのメソッドがkeepdimsを実装していない場合は例外が発生します。

第5引数:initial

出力要素の最大値です。空のスライスに対して計算を行えるようにするために必須のパラメータとなります。

実装手順

まず、必要なライブラリをインポートします。

import numpy as np

array()メソッドを使ってNumPy配列を作成します。ここでは、int型の要素に加えて、nanとNINF(負の無限大)を含む要素を追加しています。

arr = np.array([[25, 50, 75], [90, np.nan, np.NINF]])

作成した配列を表示します。

print("Our Array...\n",arr)

配列の次元数を確認します。

print("\nDimensions of our Array...\n",arr.ndim)

配列のデータ型を取得します。

print("\nDatatype of our Array object...\n",arr.dtype)

NaNを無視して配列の最小値を返すには、numpy.nanmin()メソッドを使用します。

print("\nResult (nanmin)...\n",np.nanmin(arr))

サンプルコード

import numpy as np

# array()メソッドを使ってNumPy配列を作成
# int型の要素にnanとNINF(負の無限大)を含めています
arr = np.array([[25, 50, 75], [90, np.nan, np.NINF]])

# 配列を表示
print("Our Array...\n",arr)

# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)

# データ型を取得
print("\nDatatype of our Array object...\n",arr.dtype)

# NaNを無視して最小値を求めるにはnumpy.nanmin()メソッドを使用
print("\nResult (nanmin)...\n",np.nanmin(arr))

実行結果

Our Array...
[[ 25. 50. 75.]
[ 90. nan -inf]]

Dimensions of our Array...
2

Datatype of our Array object...
float64

Result (nanmin)...
-inf

この実行結果からわかるように、配列内にNaNが含まれていても、numpy.nanmin()メソッドはそれを無視して計算を実行します。ここでは配列に負の無限大(NINF)が含まれているため、最小値として「-inf」が返されています。

  1. PythonでN次元配列の勾配を計算する方法|np.gradientの使い方を解説

    NumPyのnp.gradient()関数を使うと、N次元配列の勾配(数値微分)を簡単に求めることができます。この記事では、np.gradientの基本的な仕組みと具体的な使い方を、サンプルコード付きでわかりやすく解説します。np.gradientの勾配計算の仕組み勾配は、配列の内部点では2次精度の中心差分を用いて計算され、境界部分では1次または2次精度の片側差分(前方差分または後方差分)が使用されます。そのため、返される勾配は入力配列と同じ形状になります。主なパラメータnp.gradientには以下のパラメータがあります。第1パラメータ(f):スカラー関数のサンプル値を含むN次元配列を指定し

  2. Python・Pandasでインデックスの最小値を取得する方法(index.min()の使い方)

    Pandasのインデックス(Index)から最小値を返すには、index.min()メソッドを使用します。このメソッドを呼び出すだけで、インデックスに含まれる要素の中から最も小さい値を簡単に取得できます。まず、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、数値データを含むPandasインデックスを作成します。index = pd.Index([10.5, 20.4, 40.5, 25.6, 5.7, 6.8, 30.8, 50.2])作成したインデックスを表示して確認します。print(Pandas Index...\n, i