2022年 11月 5日

Python获取二维数组(矩阵)第二列值与最大值

对于二维数组(矩阵)的应用有多广与多重要,怎么研究都不为过,突然想获取其中最大的一组值,发现max返回的是第一列最大值的这组数,如何获得第二列最大的这组数呢?

比如:A=[[1, 2], [12, 22], [22, 5], [22, 50], [122, 50], [330, 3], [4, 400], [34, 56], [3, 44]]

如果max(A),返回的是[330, 3]

想要获取 [4, 400]这组数(也就是第二列400最大),如何做呢?

如下:

max(A,key=lambda x:x[1])

[4, 400]

其中lambda表达式返回的key这个关键字参数是内置的,换做其他的就会出错,迭代的就是第二列的值

当然我们一般转化成numpy来处理要方便点:

NA=np.array(A)

max(NA,key=lambda x:x[1])
array([  4, 400])

获取第二列最大值:

max(NA,key=lambda x:x[1])[1]

400

熟悉pandas,处理数据就更加直观简单。

  1. import pandas
  2. pd.DataFrame(A)
  3.      0    1
  4. 0    1    2
  5. 1   12   22
  6. 2   22    5
  7. 3   22   50
  8. 4  122   50
  9. 5  330    3
  10. 6    4  400
  11. 7   34   56
  12. 8    3   44
  13. pd.DataFrame(A)[1]
  14. 0      2
  15. 1     22
  16. 2      5
  17. 3     50
  18. 4     50
  19. 5      3
  20. 6    400
  21. 7     56
  22. 8     44
  23. Name: 1, dtype: int64
  24. pd.DataFrame(A)[1].max()
  25. 400

结果和Excel表格一样的直观