python求二维数组中最大值的位置

新手求教!!!
我写的程序是
for i in range(row):
for j in range(column):
if M[i][j]==max(M):
p1=i
p2=j
这是部分程序,之前已定义二维数组M,row是行宽,column是列宽,p1、p2记录最大值的位置,但是运行程序之后不执行if语句,求各位高手指点迷津!!!

使用numpy的max函数,该函数也是适用于其他维度的数组。

例子如下:

>>> a = np.arange(4).reshape((2,2))
>>> a
array([[0, 1],
[2, 3]])
>>> np.amax(a) # 整个数组的最大值
3
>>> np.amax(a, axis=0) # 沿第一个轴的最大值
array([2, 3])
>>> np.amax(a, axis=1) # 沿第二个轴的最大值
array([1, 3])
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-29
[(L.index(i), i.index(max(i))) for i in L if max([max(i) for i in L]) in i]

可读性差了点(不管了
第2个回答  2012-09-27
L = list()

for array in M:
L.extend(array)
print max(L)追问

这样求出的是最大值吧?怎样才能求得最大值在M中所在的位置呢?

追答

L.index(max(L))

第3个回答  2012-09-27
m=A[0][0]
index=(0,0)
for i in A:
for j in A[i]:
if(A[i][j]>m):
m=A[i][j]
index=(i,j)
第4个回答  2018-02-04
max = M[0][0]
for i in range(row):
for j in range(column):
if M[i][j] > max:
p1=i
p2=j
max = M[i][j]
相似回答