python numpyの配列内の最小値のインデックス番号を取得する

python numpyの配列内の最小値のインデックス番号を取得する

pythonで、ライブラリnumpyのargminを使用して、配列内の最小値のインデックス番号を取得するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

numpyインストール

numpyをインストールされていない方は、pipでインストールしておきます。

pip install numpy

# Successfully installed numpy-1.19.4

argmin使い方

argminを使用すると、配列内の最小値のインデックス番号を取得することが可能です。

import numpy as np

arr = np.array([2, 3, 1, 4, 5, 6])

print(np.argmin(arr))
# 2

# 同じ値の場合は、最初の方のインデックス番号を返す
arr = np.array([2, 6, 1, 4, 5, 1])

print(np.argmin(arr))
# 2

2次元配列の場合は、フラットになった状態の値が返ってきます。

arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])

# フラット化された値が返ってきます
print(np.argmin(arr))
# 0

# unravel_indexを使用すると0ではなく(0, 0)で取得することが可能です
print(np.unravel_index(np.argmin(arr, axis=None), arr.shape))
# (0, 0)