例如,我有这个二维数组:
[
[
0.0,
0.24320757858085434,
0.14893361727523413,
0.29786723455046826,
0.18838778030301612,
0.12160378929042717
],
[
0.23717478210768014,
0.0,
0.16770789675478251,
0.20539938644228997,
0.25981195646349819,
0.1299059782317491
],
[
0.21681956134183847,
0.250361664212574,
0.0,
0.23178986094050727,
0.16390018248131957,
0.13712873102376066
],
[
0.2933749527592357,
0.20744741852633861,
0.15681550844086434,
0.0,
0.18554661183269694,
0.15681550844086434
],
[
0.20305810393286577,
0.28716752453162431,
0.12135042758887897,
0.20305810393286577,
0.0,
0.18536584001376513
],
[
0.17877693623386351,
0.19584032147389943,
0.13848001934394774,
0.23407395508684939,
0.25282876786143976,
0.0
]
]
给出几套概率。如何找到每一行的最佳概率?还有没有任何方法可以找到例如第二,第三最佳概率而无需更改元素的位置?
@jpp的numpy
解决方案可能是解决问题的方法,由于它们给出的原因,但是如果您想从纯python中进行操作,则可以执行以下操作:
#Get the maximum value for each list
[[max(i)] for i in my_list]
# [[0.29786723455046826], [0.2598119564634982], [0.250361664212574],
# [0.2933749527592357], [0.2871675245316243], [0.25282876786143976]]
# Get the maximum 2 values for each list:
[sorted(i)[-2:] for i in my_list]
# Get the maximum 3 values for each list:
[sorted(i)[-3:] for i in my_list]
等等。请注意,这不会对原始列表进行重新排序,因为排序是在列表理解中创建的子列表中进行的
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句