 Aplanamiento de Arreglos
Aplanamiento de Arreglos
Aplanar un array significa convertirlo de un array multidimensional a un array 1D, desenrollando esencialmente su contenido.
Esta operación es útil cuando se necesita procesar los elementos de un array uno por uno o cuando se desea hacer que los datos sean más adecuados para ciertos algoritmos.
Existen tres opciones posibles para aplanar arrays en NumPy:
- Utilizar el método ndarray.reshape(-1)o la funciónnumpy.reshape(array, -1);
- Utilizar el método ndarray.ravel()o la funciónnumpy.ravel(array);
- Utilizar el método ndarray.flatten().
reshape(-1)
El método .reshape(-1) o la función reshape(array, -1) devolverán un array aplanado contiguo con el mismo número 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 array original. Dado que solo se pasa un único entero para shape, se devuelve un array 1D con el mismo número de elementos.
1234567import 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}')
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:
1234567import 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}')
flattened_array = np.ravel(array_2d) puede utilizarse en lugar de llamar al método.
ndarray.flatten()
En caso de requerir una copia del array original, y no una vista, se puede utilizar el método .flatten():
1234567import 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}')
Siempre es posible copiar una vista de un arreglo para crear un objeto independiente y modificar esta copia sin afectar el arreglo original.
Swipe to start coding
- Utilizar correctamente el método .flatten()para aplanarexam_scoresy almacenar el resultado enexam_scores_flattened.
- Utilizar correctamente el método .reshape()para aplanarexam_scoresy almacenar el resultado enexam_scores_reshaped.
- Utilizar el método .ravel()para aplanarexam_scoresy almacenar el resultado enexam_scores_raveled.
- De los tres arreglos aplanados creados, seleccionar el que sea una copia del arreglo original, no una vista, y asignar 100a su primer elemento (utilizando indexación positiva).
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.7 Aplanamiento de Arreglos
Aplanamiento de Arreglos
Desliza para mostrar el menú
Aplanar un array significa convertirlo de un array multidimensional a un array 1D, desenrollando esencialmente su contenido.
Esta operación es útil cuando se necesita procesar los elementos de un array uno por uno o cuando se desea hacer que los datos sean más adecuados para ciertos algoritmos.
Existen tres opciones posibles para aplanar arrays en NumPy:
- Utilizar el método ndarray.reshape(-1)o la funciónnumpy.reshape(array, -1);
- Utilizar el método ndarray.ravel()o la funciónnumpy.ravel(array);
- Utilizar el método ndarray.flatten().
reshape(-1)
El método .reshape(-1) o la función reshape(array, -1) devolverán un array aplanado contiguo con el mismo número 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 array original. Dado que solo se pasa un único entero para shape, se devuelve un array 1D con el mismo número de elementos.
1234567import 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}')
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:
1234567import 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}')
flattened_array = np.ravel(array_2d) puede utilizarse en lugar de llamar al método.
ndarray.flatten()
En caso de requerir una copia del array original, y no una vista, se puede utilizar el método .flatten():
1234567import 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}')
Siempre es posible copiar una vista de un arreglo para crear un objeto independiente y modificar esta copia sin afectar el arreglo original.
Swipe to start coding
- Utilizar correctamente el método .flatten()para aplanarexam_scoresy almacenar el resultado enexam_scores_flattened.
- Utilizar correctamente el método .reshape()para aplanarexam_scoresy almacenar el resultado enexam_scores_reshaped.
- Utilizar el método .ravel()para aplanarexam_scoresy almacenar el resultado enexam_scores_raveled.
- De los tres arreglos aplanados creados, seleccionar el que sea una copia del arreglo original, no una vista, y asignar 100a su primer elemento (utilizando indexación positiva).
Solución
¡Gracias por tus comentarios!
single