gpt4 book ai didi

Python:识别具有最大值(value)的列

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:29 24 4
gpt4 key购买 nike

假设我有 n 行 5 列数据:

0.0374 0.1311 0.1502 0.5761 0.1052
0.0117 0.0301 0.1748 0.5980 0.1854
0.1261 0.7332 0.1182 0.0156 0.0069

对于每一行,我希望能够识别包含最大值的列号。例如,在我的示例数据的第一行中,第 3 列(从零开始的索引)具有 max() 值;对于第二行,第 3 列再次具有最大值;对于第三行,第一列具有最大值。我可以编写一个低效的方法来标识具有最大值的列,但是有一个优雅的解决方案来解决这个问题吗?我欢迎其他人提供的任何和所有建议。

最佳答案

使用以下代码:

mytsv.tsv:

0.0374 0.1311 0.1502 0.5761 0.1052
0.0117 0.0301 0.1748 0.5980 0.1854
0.1261 0.7332 0.1182 0.0156 0.0069

代码:

>>> contents = open('mytsv.tsv')
>>> linenum = 0
>>> for line in contents:
... linenum+=1
... print 'The maximum in line %d is in column %d' %(linenum, line.index(max(line.split())))
...
The maximum in line 1 is in column 3
The maximum in line 2 is in column 3
The maximum in line 3 is in column 1
>>>

它并不完全优雅,但它相对Pythonic。如果你想让我尝试进一步缩小它,我可以。

这是一句:

['The maximum in line %d is in column %d' %(linenum, line.split().index(max(line.split()))) for linenum, line in enumerate(open('mytsv.tsv'))]

可以这样使用:

>>> for k in ['The maximum in line %d is in column %d' %(linenum, line.split().index(max(line.split()))) for linenum, line in enumerate(open('mytsv.tsv'))]:
... print k
...
The maximum in line 0 is in column 3
The maximum in line 1 is in column 3
The maximum in line 2 is in column 1
>>>

关于Python:识别具有最大值(value)的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23484964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com