gpt4 book ai didi

python - 如何找到二维数组中每一行的最大值?

转载 作者:行者123 更新时间:2023-12-01 09:32:30 24 4
gpt4 key购买 nike

例如,我有这个二维数组:

[
[
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
]
]

它给出了概率集。如何找到每一行的最佳概率?还有什么方法可以在不改变元素位置的情况下找到例如第二、第三最佳概率?

最佳答案

您可以使用第 3 方库 numpy 轻松完成此操作。首先创建一个 numpy 数组:

A = np.array([[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]])

返回每行的最大值:

res = A.max(axis=1)

对于每行中第二大的,您可以使用numpy.sort。这沿着轴排序(未就位),然后提取第二大的(通过 -2)。

res = np.sort(A, axis=1)[:, -2]

这些都是矢量化计算。您可以使用列表的列表来执行这些计算,但这是不可取的。

关于python - 如何找到二维数组中每一行的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842547/

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