una multiplicar matriz matrices llenar inversa imagen convertir como calcular python for-loop max

multiplicar - matrices en python numpy



¿Hay un código de una línea para encontrar el valor máximo en una matriz? (4)

Por matriz, supongo que te refieres a una 2da. Lista.

max([max(i) for i in matrix])

Para encontrar el valor máximo en una matriz de números, podemos codificar 5 líneas para resolver el problema:

ans = matrix[0][0] for x in range(len(matrix)): for y in range(len(matrix[0])): ans = max(ans, matrix[x][y]) return ans

¿Hay una solución de una línea para este problema? El que se me ocurrió es bastante incómodo en realidad:

return max(max(matrix, key=max))

o

return max(map(max, matrix))


También puede aplanar su matriz:

from itertools import chain flatten = chain.from_iterable max(flatten(matrix))


usando numpy.amax :

import numpy as np >>> my_array array([[1, 2, 3], [9, 8, 6]]) >>> np.amax(my_array) 9


Puede usar la expresión del generador para encontrar el máximo en su matriz. De esta forma, puede evitar crear la lista completa de elementos de matriz en la memoria.

maximum = max(max(row) for row in matrix)

en lugar de enumerar la comprensión como se da en una respuesta anterior aquí

maximum = max([max(row) for row in matrix])

Esto es de PEP (la sección de razonamiento ):

... muchos de los casos de uso no necesitan tener una lista completa creada en la memoria. En cambio, solo necesitan iterar sobre los elementos uno a la vez.

...

Las expresiones de generador son especialmente útiles con funciones como sum (), min () y max () que reducen una entrada iterable a un solo valor

...

La utilidad de las expresiones del generador se mejora mucho cuando se combina con funciones de reducción como sum (), min () y max () .

Además, eche un vistazo a esta publicación de SO: Expresiones de Generador vs. Comprensión de Lista .