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

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

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

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

第1引数(a):最小値を求めたい数値を含む配列です。aが配列でない場合には、自動的に配列への変換が試みられます。

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

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

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

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

実装手順

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

import numpy as np

array()メソッドを使ってnumpy配列を作成します。ここではint型の要素に加えて、nanとinf(正の無限大)を含めた配列を用意しています。

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

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

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

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

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

配列オブジェクトのデータ型を取得します。

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

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

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

サンプルコード

import numpy as np

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

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

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

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

# numpy.nanmin()メソッドでNaNを無視した最小値を取得
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)...
25.0

このように、配列にNaNやinfが含まれていても、numpy.nanmin()を使えばNaNを適切に除外し、正しい最小値「25.0」を取得できます。通常のnp.min()ではNaNが含まれると結果もNaNになってしまうため、欠損値を含むデータを扱う際にはnanmin()が非常に便利です。

  1. Python NumPyのnp.log2()で入力配列の底2の対数を計算する方法

    PythonのNumPyで入力配列の各要素に対して底2の対数(log₂)を求めるには、numpy.log2()メソッドを使用します。このメソッドは引数xの底2の対数を返します。xがスカラーの場合、戻り値もスカラーになります。numpy.log2()の主なパラメータ第1パラメータ:x — 入力値を指定します。配列のようなオブジェクト(array-like)を受け付けます。第2パラメータ:out — 計算結果を格納する場所を指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNoneを指定した場合は、新しく確保された配列が返されます。タプルで指定

  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