python+numpy行ごとに2次元配列の最大値を求める

647 ワード

質問の説明:2 D配列を指定し、各行の最大値を求めて列ベクトルを返します.
例えば、所与の配列【1,2,3;4,5,3】は[3;5]を返す.
import numpy as np

x = np.array([[1,2,3],[4,5,3]])
#           
index_max = np.argmax(x, axis=1)#   ,axis=1      
print(index_max.shape)

max = x[range(x.shape[0]), index_max]
print(max)
#             
#            ,
#   range()        ,  0 n
# index_max       ,       
#   ,                

max_ = x[range(x.shape[0]), index_max].reshape(-1,1)
print(max_)
#         

注目すべきは:1)np.argmaxは行ベクトルではなく列ベクトルを得るが,これは他の関数にも2)和を表すものと,他の演算は行または列に従ってaxisを指定することによって3)reshape()によって具体的な次元を再び返すことができ,我々が必要とする次元である.関数のパラメータは1つ-1でもよいが、この数が未知であることを示す1つしかない.