PythonのNumPyでNaNを無視して配列の最大値を取得する方法
配列の最大値を取得したい場合、あるいはNaN(非数)を無視して最大値を計算したい場合は、Pythonのnumpy.nanmax()メソッドを使用します。このメソッドは、指定した軸(axis)が削除された状態で、入力配列aと同じ形状の配列を返します。aが0次元配列の場合やaxisにNoneを指定した場合は、ndarrayスカラーが返され、戻り値のdtypeは元の配列aと同じになります。
主なパラメータ
- 第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を混ぜた配列を作成しています。
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
作成した配列を表示します。
print("Our Array...\n",arr)配列の次元数を確認します。
print("\nDimensions of our Array...\n",arr.ndim)配列のデータ型を確認します。
print("\nDatatype of our Array object...\n",arr.dtype)NaNを無視して配列の最大値を取得するには、numpy.nanmax()メソッドを使用します。
print("\nResult (nanmax)...\n",np.nanmax(arr))完全なコード例
import numpy as np
# array()メソッドでnumpy配列を作成
# int型の要素にnanを含めている
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
# 配列を表示
print("Our Array...\n",arr)
# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)
# データ型を確認
print("\nDatatype of our Array object...\n",arr.dtype)
# NaNを無視して最大値を取得するためにnumpy.nanmax()メソッドを使用
print("\nResult (nanmax)...\n",np.nanmax(arr))出力結果
Our Array... [[10. 20. 30.] [40. nan 60.]] Dimensions of our Array... 2 Datatype of our Array object... float64 Result (nanmax)... 60.0
-
Python NumPyのnp.log2()で入力配列の底2の対数を計算する方法
PythonのNumPyで入力配列の各要素に対して底2の対数(log₂)を求めるには、numpy.log2()メソッドを使用します。このメソッドは引数xの底2の対数を返します。xがスカラーの場合、戻り値もスカラーになります。numpy.log2()の主なパラメータ第1パラメータ:x — 入力値を指定します。配列のようなオブジェクト(array-like)を受け付けます。第2パラメータ:out — 計算結果を格納する場所を指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNoneを指定した場合は、新しく確保された配列が返されます。タプルで指定
-
Python・NumPyで文字列配列の各要素の長さを取得する方法
文字列配列の各要素の長さを要素ごとに取得したい場合は、PythonのNumPyが提供する numpy.char.str_len() メソッドを使用します。このメソッドは、各文字列の長さを格納した整数型の出力配列を返します。実行手順まず、必要なライブラリをインポートします。import numpy as np次に、1次元の文字列配列を作成します。arr = np.array([Amy, Scarlett, Katie, Brad, Tom])作成した配列を表示してみましょう。print(Array...\n,arr)配列のデータ型を確認します。print(\nArray datatype...\