从最简单的例子开始,假设现在有数组a=[ 3,1,2,4,6,1 ]计算现在数组a中最大数目的索引是多少。 这个问题刚学编程的学生可以解决。 最直接的想法是,首先假设第0个数最大,将其与后面的数进行比较,找到大的东西后更新索引。 代码应与以下内容类似
a=[ 3,1,2,4,6,1 ] maxindex=0i=0fortm pina : if tmpa [ maxindex ] 3360 maxindex=ii=1print (maxindex )此问题很简单
说明还是从一维数组出发。 请看以下示例:
importnumpyasnpa=NP.array ([ 3,1,2,4,6,1 ] )打印(NP.argmax ) ) argmax返回的是最大数量的索引. argmax中的参数axis
importnumpyasnpa=NP.array ([ 1,5,5,2 ],[ 9,6,2,8 ],[ 3,7,9,1 ] ) np.argmax(a ) a,axis 根据a[0][j],最大值的索引最初为(0,0,
importnumpyasnpa=NP.array ([ 1,5,5,2 ],[ 9,6,2,8 ],[ 3,7,9,1 ] ) np.argmax(a ) a,axis 根据a[i][0],假定与a[i][0]对应的索引是(0,0,0 ),其是最大值索引(概念与前一个简单例子完全一致) ) a ) I )。
观察三维情况。
importnumpyasnpa=NP.array ([ 1,5,5,2 ],[9,- 6,2,8 ],[-3,7,- 9,1 ],[-1,5,- 5,2 ] axis ) 3 )中的a[0][j][k]和a[1][j][k]的对应项进行比较,由于6大于-6、3大于-3、9大于-9,所以更新这些位置的索引时,((0
importnumpyasnpa=NP.array ([ 1,5,5,2 ],[9,- 6,2,8 ],[-3,7,- 9,1 ],[-1,5,- 5,2 ] axis ) 3 )中最大值的a[i][0][k]和a[i][1][k]的对应项进行比较,9大于1,8大于2,9大于- 1,6大于5,2大于- 5,8 8 ) )和a[i][2][k]的对应项进行比较,7大于5,7大于6,9大于2。 更新这些位置的索引。 ) ) 1,0,0
参考资料numpy官方文档