当前位置: 首页 > 后端技术 > Python

使用numpy求[二维数组]中的最大值及其下标

时间:2023-03-26 01:04:42 Python

1.通过np.max和np.where查找[所有满足条件的解]通过np.max求矩阵的最大值。max(),然后通过np.where获取最大值的位置,代码如下:importnumpyasnpa=np.random.randint(1,10,size=12)a=a.reshape((3,4))print(a)print(np.max(a))r,c=np.where(a==np.max(a))print(r,c)输出:[[7894][9393][5615]]9[011][202]输出是两个数组,分别是x和y数组,即所有等于这个最大值的位置成立。2.利用np.argmax寻找【第一个满足条件的解】,将矩阵展开为一维。np.argmax可以返回最大值在这个一维数组中第一次出现的位置。将这个位置除以矩阵的列得到的商就是最大值所在的行,得到的余数就是最大值所在的列。将numpy导入为npa=np.random.randint(1,10,size=12)a=a.reshape((3,4))print(a)print(np.max(a))m=np.argmax(a)#将矩阵拉一维,m为一维数组r中最大值的下标,c=divmod(m,a.shape[1])#r和c分别为商和余数,即最大值在矩阵的行和列中#m是被除数,a.shape[1]是除数print(r,c)output:[[5597][5589][2393]]902can可见只找到第一个最大值,后面的都搜不到了。

猜你喜欢