首页 > 解决方案 > 列表的最大值(每个索引的长度可能不同)和一个数字

问题描述

假设我有一个长度为 3 的列表。列表中的条目有维度:5, (5,5), 5 一个例子可以是 [[1,23,3,3,2], [[1,2, 2,3,4],[1,4,3,1,4],[6,7,8,5,4],[3,5,2,2,1],[5,2,6, 7,8]], [1,3,6,4,2]]

我想获得列表的最大值和 5(比如说)。但我想要与我的列表相同维度的输出。这个想法被用于神经网络。该列表可以被认为是层中边缘的权重。

我尝试使用np.maximum(),但它需要相同长度/尺寸的向量。

在 MatLab 中,max 函数返回相同维度的列表,但我找不到 python 的类似函数。

编辑-以下是我想要的输出和 MatLab 中的输出 在此处输入图像描述

标签: pythonneural-networknumpy

解决方案


def my_max(lst, s = 5):
    try:
        lst = sum(lst, [])
    except:
        pass
        
    return [max(c, s) for c in lst]

让我们测试一下

my_max(l[1], 5)

返回

[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8]

推荐阅读