Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Aplanamiento de Arreglos | Funciones Comúnmente Utilizadas de NumPy
Numpy Definitivo

bookAplanamiento de Arreglos

Aplanar un arreglo significa convertirlo de un arreglo multidimensional a un arreglo 1D, desenrollando esencialmente su contenido.

Esta operación es útil cuando se necesita procesar los elementos de un arreglo uno por uno o cuando se desea hacer que los datos sean más adecuados para ciertos algoritmos.

Existen tres opciones posibles para aplanar en NumPy:

  • Usar el método ndarray.reshape(-1) o la función numpy.reshape(array, -1);
  • Usar el método ndarray.ravel() o la función numpy.ravel(array);
  • Usar el método ndarray.flatten().

reshape(-1)

El método .reshape(-1) o la función reshape(array, -1) devolverá un arreglo aplanado contiguo con la misma cantidad de elementos.

Como ya se mencionó en el capítulo anterior, -1 calcula automáticamente el tamaño de la dimensión en función del tamaño del arreglo original. Dado que solo se pasa un único entero para shape, se devuelve un arreglo 1D con la misma cantidad de elementos.

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

El método .reshape() o la función respectiva devuelve una vista del arreglo original, por lo que cualquier cambio realizado en el arreglo reestructurado también afectará al arreglo original.

Se puede utilizar flattened_array = np.reshape(array_2d, -1) en lugar de llamar al método.

ravel()

El método ndarray.ravel() o la función numpy.ravel(array) funciona igual que reshape(-1) y también devuelve una vista del arreglo original:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

flattened_array = np.ravel(array_2d) se puede utilizar en lugar de llamar al método.

ndarray.flatten()

En caso de que se requiera una copia del arreglo original, y no una vista, se puede utilizar el método .flatten():

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
copy
Note
Nota

Siempre es posible copiar una vista de un arreglo para crear un objeto independiente y modificar esta copia sin afectar el arreglo original.

Tarea

Swipe to start coding

  1. Uso correcto del método .flatten() para aplanar exam_scores y almacenar el resultado en exam_scores_flattened.
  2. Uso correcto del método .reshape() para aplanar exam_scores y almacenar el resultado en exam_scores_reshaped.
  3. Uso del método .ravel() para aplanar exam_scores y almacenar el resultado en exam_scores_raveled.
  4. De los tres arreglos aplanados creados, selecciona el que sea una copia del arreglo original, no una vista, y asigna 100 a su primer elemento (utiliza indexación positiva).

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

What is the difference between a view and a copy in NumPy?

When should I use flatten() instead of reshape(-1) or ravel()?

Can you explain what happens if I modify the flattened array in each case?

close

Awesome!

Completion rate improved to 3.7

bookAplanamiento de Arreglos

Desliza para mostrar el menú

Aplanar un arreglo significa convertirlo de un arreglo multidimensional a un arreglo 1D, desenrollando esencialmente su contenido.

Esta operación es útil cuando se necesita procesar los elementos de un arreglo uno por uno o cuando se desea hacer que los datos sean más adecuados para ciertos algoritmos.

Existen tres opciones posibles para aplanar en NumPy:

  • Usar el método ndarray.reshape(-1) o la función numpy.reshape(array, -1);
  • Usar el método ndarray.ravel() o la función numpy.ravel(array);
  • Usar el método ndarray.flatten().

reshape(-1)

El método .reshape(-1) o la función reshape(array, -1) devolverá un arreglo aplanado contiguo con la misma cantidad de elementos.

Como ya se mencionó en el capítulo anterior, -1 calcula automáticamente el tamaño de la dimensión en función del tamaño del arreglo original. Dado que solo se pasa un único entero para shape, se devuelve un arreglo 1D con la misma cantidad de elementos.

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

El método .reshape() o la función respectiva devuelve una vista del arreglo original, por lo que cualquier cambio realizado en el arreglo reestructurado también afectará al arreglo original.

Se puede utilizar flattened_array = np.reshape(array_2d, -1) en lugar de llamar al método.

ravel()

El método ndarray.ravel() o la función numpy.ravel(array) funciona igual que reshape(-1) y también devuelve una vista del arreglo original:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

flattened_array = np.ravel(array_2d) se puede utilizar en lugar de llamar al método.

ndarray.flatten()

En caso de que se requiera una copia del arreglo original, y no una vista, se puede utilizar el método .flatten():

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
copy
Note
Nota

Siempre es posible copiar una vista de un arreglo para crear un objeto independiente y modificar esta copia sin afectar el arreglo original.

Tarea

Swipe to start coding

  1. Uso correcto del método .flatten() para aplanar exam_scores y almacenar el resultado en exam_scores_flattened.
  2. Uso correcto del método .reshape() para aplanar exam_scores y almacenar el resultado en exam_scores_reshaped.
  3. Uso del método .ravel() para aplanar exam_scores y almacenar el resultado en exam_scores_raveled.
  4. De los tres arreglos aplanados creados, selecciona el que sea una copia del arreglo original, no una vista, y asigna 100 a su primer elemento (utiliza indexación positiva).

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5
single

single

some-alt