我是靠谱客的博主 缓慢白猫,最近开发中收集的这篇文章主要介绍【Python系列二】Numpy数组和List的元素查找,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

《目录》

  1. 查找 Numpy 数组中满足一定条件的元素
  2. 查找 Numpy 数组的最大值
  3. 查找 List 中的已知元素
  4. 查找 List 中的最大值

1. 查找数组中符合条件的元素索引

(1) 在 Numpy 数组中查找 符合一定条件的元素的索引,可使用 np.argwhere(condition) 函数,返回值为满足条件的元素的坐标矩阵,shape 为 n*2,n 为满足条件的元素个数。具体例子见 case 1

# case 1
>>> x = np.array([[1,2,3],[4,5,6]])
>>> x
array([[1, 2, 3],
       [4, 5, 6]])
>>> np.argwhere(x > 3)
array([[1, 0],
       [1, 1],
       [1, 2]])

2. 查找数组元素最大值

在 Numpy 数组中查找最大值,可使用 np.max(arr)np.argmax(arr) 函数,前者返回数组中的最大值,后者返回最大值元素的索引。另外,argmax() 可指定参数 axis = a,代表按第 a 维查找最大值。

注意np.argmax() 获取的索引不是数组元素所在的下标位置,而是一个标量索引值。当数组为一维向量时,下标从 0 开始进行查找;当数组为多维向量时,会从最内的维度向外遍历,索引也每次加 1,类似于先把数组拉成一维向量,再求索引值。具体例子见 case 2

# case 2
>>> x = np.array([[1,2,3],[4,5,6]])
>>> x
array([[1, 2, 3],
       [4, 5, 6]])

>>> np.max(x)             # 查找数组最大值
6
>>> np.max(x, axis=0)     # 查找数组每列最大值
array([4, 5, 6])
>>> np.max(x, axis=1)     # 查找数组每行最大值
array([3, 6])

>>> np.argmax(x)     # 最大元素的索引
5

3. 查找列表中已知元素的索引

list.index(value) 可用于查找列表中指定元素的索引。其中 list 为查找目标列表,value 为要查找的值,index 函数可返回查找值在列表中的索引位置。具体例子见 case 3

# case 3
>>> a = [3, 7, 5, 4, 2]
>>> a.index(4)
3

4. 查找列表元素最大值

查找列表元素最大值有两种方法:

  • 一是先对列表元素进行升序或降序排序,然后再取最后一个或第一个元素,即为列表中的最大值
  • 二是可以直接使用 max() 方法进行求取

具体例子见 case 4

# case 4
>>> list = [3,1,7,4,9,6]
>>> sorted(list)[-1]
9
>>> sorted(list, reverse=True)[0]
9
>>> max(list)
9

最后

以上就是缓慢白猫为你收集整理的【Python系列二】Numpy数组和List的元素查找的全部内容,希望文章能够帮你解决【Python系列二】Numpy数组和List的元素查找所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部