【问题标题】:How to get a column-wise min of list of lists?如何获取列表列表的按列最小值?
【发布时间】:2022-01-25 17:35:35
【问题描述】:

我有一个列表列表:

a = [[9, -2], 
     [8, 7], 
     [9, 100]]

我希望min(a) 的输出是[8, -2]

但是min(a)的实际输出是[8, 7]

有人知道为什么吗?

【问题讨论】:

  • 因为[8, -2] 不存在于a 中。如果你想要每个子元素的最小值,那是一个不同的问题。
  • 使用普通的 python 你需要做类似的事情:[min(col) for col in zip(*a)]。 Numpy 让它更短一点:numpy.min(a, axis=0)
  • @Mark 或a.min(axis=0) 或更短的a.min(0),如果anp.ndarray

标签: python list


【解决方案1】:

min() 查找序列中的最小元素。 [8, -2] 不在序列中,所以不能作为答案。

[8, 7] 有最小的第一个元素,所以它是最小的。

【讨论】:

    【解决方案2】:

    min(a) 将为您提供最小的行,执行逐行比较。你得到 [8,7] 因为 [8,7] 小于 [9,-2] 并且小于 [9,100](与整个列表相比)。

    如果你想要每列的最小值独立,你可以使用 zip 访问列值并将 min() 函数应用于每一列:

    [*map(min,zip(*a))]  # [8, -2]
    

    【讨论】:

      猜你喜欢
      • 2020-09-22
      • 2011-12-24
      • 1970-01-01
      • 2015-09-26
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      相关资源
      最近更新 更多