どうも、ちょげ(@chogetarou)です。
Numpy配列(array)の2番目の最大値を取得する方法を紹介します。
方法

Numpy配列(array)で2番目に大きい値を取得するには、partition()を使います。
まず、numpyからpartition()を呼び出します。
partition()の第1引数にNumpy配列から呼び出したflatten()の結果、第2引数に「-2」を指定します。
そして、partition()の結果のインデックス「-2」にアクセスします。
#arr=対象のNumpy配列
result = np.partition(arr.flatten(), -2)[-2] #2番目に大きい値を取得
上記のpartition()のインデックス「-2」にアクセスすることで、Numpy配列の2番目に大きい値を取得できます。
使用例
import numpy as np
nums = np.array([[10, 3, 5, 8], [1, 7, 2, 9]])
result = np.partition(nums.flatten(), -2)[-2]
print(result)
出力:
9
コメント