《目录》

  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
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐