python获得list或numpy数组中最大元素对应的索引
·
获得list中最大元素的索引
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))
参考文章
推荐内容
阅读全文
AI总结
更多推荐
相关推荐
查看更多
A2A

谷歌开源首个标准智能体交互协议Agent2Agent Protocol(A2A)
ai-agents-for-beginners

这个项目是一个针对初学者的 AI 代理课程,包含 10 个课程,涵盖构建 AI 代理的基础知识。源项目地址:https://github.com/microsoft/ai-agents-for-beginners
n8n

n8n 是一个工作流自动化平台,它结合了代码的灵活性和无代码的高效性。支持 400+ 集成、原生 AI 功能以及公平开源许可,n8n 能让你在完全掌控数据和部署的前提下,构建强大的自动化流程。源项目地址:https://github.com/n8n-io/n8n
热门开源项目
活动日历
查看更多
直播时间 2025-04-09 14:34:18

樱花限定季|G-Star校园行&华中师范大学专场
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
直播时间 2025-03-26 14:30:09

开源工业物联实战!
直播时间 2025-03-25 14:30:17

Heygem.ai数字人超4000颗星火燎原!
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
目录
所有评论(0)