[Python]Numpy配列(Array)の最小値のインデックスを取得するには?

python

どうも、ちょげ(@chogetarou)です。

Numpyの配列(Array)の最小値のインデックスを取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Numpyの配列(Array)の最小値のインデックスを取得する方法は、2つあります。

argmin()メソッド

1つは、argmin()メソッドを使う方法です。

具体的には、Numpyの配列からargmin()メソッドを呼び出します。

array.argmin()

argmin()メソッドは、呼び出したNumpy配列の最小値のインデックスを返します。

argmin()の結果は、多次元配列の形状を考慮しません。

もし、多次元配列の形状を考慮した結果を得たい場合は、numpyのnunravel_index()を使います。

np.unravel_index(array.argmin(), array.shape)

使用例

import numpy as np

nums = np.array([[1, 2, -100],
                 [4, -1000, 6], 
                 [7, 8, -10]])

min_num_index = nums.argmin()
min_dim_index = np.unravel_index(nums.argmin(), nums.shape)

print(min_num_index) #4
print(min_dim_index) #(1, 1)

numpy.argmin()

もう1つは、numpyのargmin()を使う方法です。

まず、numpyからargmin()を呼び出します。

そして、argmin()関数の引数にNumpy配列を指定します。

np.argmin(array)

argmax()関数は、引数に指定したNumpy配列の最小値のインデックスを返します。

Numpyのargmin()の結果は、多次元配列の形状を考慮しません。

もし、多次元配列の形状を考慮した結果を得たい場合は、numpyのnunravel_index()を使います。

np.unravel_index(np.argmin(array), array.shape)

使用例

import numpy as np

nums = np.array([[1, 2, -100],
                 [4, -1000, 6], 
                 [7, 8, -10]])

min_num_index = np.argmin(nums)
min_dim_index = np.unravel_index(np.argmin(nums), nums.shape)

print(min_num_index) #4
print(min_dim_index) #(1, 1)

まとめ

Numpyの配列(Array)の最小値のインデックスを取得する方法は、次の2つです。

  • argmin()メソッドを使う方法
  • numpy.argmin()を使う方法

コメント

タイトルとURLをコピーしました