Pythonはlistまたはnumpy配列の最大小要素に対応するインデックスを取得する

1553 ワード

リスト内の最大要素のインデックスを取得
aa = [1,2,3,4,5]
aa.index(max(aa))

対応する最小値の使用
aa = [1,2,3,4,5]
aa.index(min(aa))
  •  

  • numpy配列の最大要素のインデックスを取得
  • はnumpyの関数を使用し、argmaxは最大要素のインデックスを取得し、対応する最小値を取得するにはargminを使用する必要があります.
  • aa = [1,2,3,4,5]
    arr_aa = np.array(aa)
    maxindex  = np.argmax(arr_aa )
  • はnumpyをlistに変換し、listまたは最大値インデックスを使用して最大値を得ることもできる.
  • aa = numpy.array([1,2,3,4,5])

    まずaaをListに変換し、インデックスを求めます.
    bb = aa.tolist()
    bb.index(max(bb))
  • pythonは柔軟なので、where関数を使用するなど、他の方法もあります.  まず,arrayのグローバルおよび各行の各列における最大値(最小値同理)
  • を得ることができる.
    >>> a = np.arange(9).reshape((3,3))
    >>> a
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    >>> print(np.max(a))        #    
    8
    >>> print(np.max(a,axis=0)) #    
    [6 7 8]
    >>> print(np.max(a,axis=1)) #    
    [2 5 8]

    次にwhereで最大値のインデックスを得て、値の中で、前のarrayは行数に対応して、後者は列数に対応します
    >>> print(np.where(a==np.max(a)))
    (array([2], dtype=int64), array([2], dtype=int64)) #            
    >>> print(np.where(a==np.max(a,axis=0)))
    (array([2, 2, 2], dtype=int64), array([0, 1, 2], dtype=int64)) #               ,      ,      

    arrayに同じ最大値がある場合、whereはその位置をすべて与えます.
    >>> a[1,0]=8
    >>> a
    array([[0, 1, 2],
           [8, 4, 5],
           [6, 7, 8]])
    >>> print(np.where(a==np.max(a)))
    (array([1, 2], dtype=int64), array([0, 2], dtype=int64))