Diferencias entre flatten() y ravel() en Python

Muchas veces las usamos indistintamente pero existen diferencias entre flatten() y ravel(), en Python

Cuando necesitamos convertir un ndarray en un array de una sola dimensión, podemos valernos de algunas de estas dos funciones de numpy, la biblioteca para operar funciones numéricas que Python posee.

flatten() vs ravel()

Las diferencias entre ambas funciones no son muchas, pero existen. Veamos

flatten()

Solo nos retornará una copia del array original, por lo que si modificamos su composición en el transcurso de nuestro código, nos seguirá devolviendo el array inicial

Por otro lado en comparación con ravel(), es más lento y ocupa mayor cantidad de memoria.

flatten() además, es un método propio del objeto ndarray

ravel()

Su resultado es una vista o referencia del array que esta aplanando o convirtiendo, pero si este cambia, al ser una referencia, el también se ve afectado y actualiza su contenido.

Es mucho más rápido y no ocupa memoria.

ravel() actúa como una función, pero esta diseñado como una librería

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias


“Todo como el diamante, antes que luz es carbon”

JMarti