Ответ 1
Вы можете использовать выражение генератора, чтобы найти максимальное значение в вашей матрице. Таким образом, вы можете не создавать полный список матричных элементов в памяти.
maximum = max(max(row) for row in matrix)
вместо понимания списка, как указано в предыдущем ответе здесь
maximum = max([max(row) for row in matrix])
Это от PEP (rationale раздел):
... у многих вариантов использования нет необходимости создавать полный список, созданный в Память. Вместо этого им нужно только перебирать элементы по одному на время.
...
Выражения генератора особенно полезны для таких функций, как sum(), min() и max(), которые уменьшают итерируемый ввод до единственного значения
...
Ускорение выражений генератора значительно улучшается в сочетании с редукционными функциями, такими как sum(), min() и max().
Кроме того, взгляните на эту публикацию SO: Выражения генератора и понимание списков.