gpt4 book ai didi

python - 矩阵的每一行和每一列中的最小值 - Python

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:51 24 4
gpt4 key购买 nike

有人可以帮帮我吗?我正在尝试获取此矩阵的每一行和每一列的最小值

matrix =[[12,34,28,16],
[13,32,36,12],
[15,32,32,14],
[11,33,36,10]]

例如:我希望我的程序打印出 12 是第 1 行的最小值,依此类推。

最佳答案

让我们重复任务语句:“获取此矩阵的每一行每一列 的最小值”。

好的,所以,如果矩阵有 n 行,您应该得到 n 最小值,每行一个。听起来很有趣,不是吗?因此,代码将如下所示:

result1 = [<something> for row in matrix]

那么,您需要对每一行做什么?对,找到最小值,这非常简单:

result1 = [min(row) for row in matrix]

作为结果,您将获得 n 值的列表,正如预期的那样。


等等,现在我们只找到了每一行的最小值,还没有找到每一的最小值,所以让我们也这样做吧!

鉴于您使用的是 Python 3.x,您可以做一些非常了不起的事情。例如,您可以轻松地遍历列:

result2 = [min(column) for column in zip(*matrix)] # notice the asterisk!

zip(*matrix) 中的星号使 matrix 的每一行成为 zip 的单独参数,如下所示:

zip(matrix[0], matrix[1], matrix[2], matrix[3])

这看起来可读性不太好,取决于 matrix 中的行数(基本上,您必须对它们进行硬编码),星号让您可以编写更简洁的代码.

zip 返回元组,第 i 元组包含 所有 行的第 i 个值,所以这些元组实际上是给定矩阵的列。


现在,你可能会觉得这段代码有点难看,你可能想用更简洁的方式写同样的东西。果然,您可以使用一些函数式编程魔法:

result1 = list(map(min, matrix))
result2 = list(map(min, zip(*matrix)))

这两种方法是完全等价的。

关于python - 矩阵的每一行和每一列中的最小值 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42610617/

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