gpt4 book ai didi

python - 从不同长度的子子列表中查找全局最小值

转载 作者:行者123 更新时间:2023-11-28 21:21:52 25 4
gpt4 key购买 nike

我有一个由不同长度的子列表组成的列表,形状如下:

a = [[[-0.152, -0.171, -0.132, -0.111, -0.088],[0.565, 0.718, 0.794, 0.870, 0.947]],[[-0.1293, -0.094, -0.062, -0.030, 3.207, 0.],[1.223, 1.266, 1.309, 0.231, 1.394, 1.434]]]

所以它基本上是一个主列表,有两个子列表 AB(可能更多),每个子列表都有两个子列表 A1A2B1B2(子子列表的个数始终固​​定为2):

a = [A, B]
A = [A1, A2]
B = [B1, B2]

A1, A2 La 等长,B1, B2 > 具有长度 Lb,但这些长度不一定相等,即:La == Lb 并不总是正确的。

我需要获取 A1B1 之间以及 A2B2 之间的全局最小值等等如果有更多类似形状的子列表。即:如果我在 a 中有一个带有 C = [C1, C2] 的额外 C 子列表,那么我需要全局A1、B1、C1A2、B2、C2 之间的最小值。

对于上面的 a 列表,输出必须如下所示:

array([-0.171, 0.231])

我已经尝试了 np.min(a, axis=*) 的几种变体,但我无法让它返回我需要的内容。如果 La == Lb 我可以使用 np-min 来获得我需要的结果。例如,如果我从每个子子列表 B1B2 中删除一个项目,以便 La = Lb = 5 那么我可以使用:

a = [[[-0.152, -0.171, -0.132, -0.111, -0.088],[0.565, 0.718, 0.794, 0.870, 0.947]],[[-0.1293, -0.094, -0.062, -0.030, 3.207],[1.223, 1.266, 1.309, 0.231, 1.394]]]
np.min(np.min(a, axis=2) ,axis=0)
array([-0.171, 0.231])

最佳答案

通过 numpy 数组或 Pandas 或其他一些格式更改数据结构以简化操作可能是最好的。

但是,一种纯 Python 方法是:

map(lambda x: min(map(min, x)), zip(*a))

关于python - 从不同长度的子子列表中查找全局最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20577133/

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