La Diferencia Entre una Copia y una Vista
En NumPy, una copia es un array completamente nuevo con sus propios datos, mientras que una vista es una nueva forma de ver los mismos datos. Modificar una vista afectará al array original, pero modificar una copia no lo hará.
Veamos esto en la práctica. Crearemos un array, luego haremos una vista y una copia de él. Luego modificaremos ambos y observaremos el efecto en el array original.
Primero, abra el archivo main.py desde el explorador de archivos de la izquierda. Luego, reemplace su contenido con el siguiente código:
import numpy as np
## --- Parte 1: Modificar una Vista ---
print("--- Modifying a View ---")
## Crear un array original
original_array_view = np.array([1, 2, 3, 4, 5])
print(f"Original array: {original_array_view}")
## Crear una vista del array
view_array = original_array_view.view()
## Modificar el primer elemento de la vista
view_array[0] = 99
print(f"View after modification: {view_array}")
print(f"Original array after modifying the view: {original_array_view}\n")
## --- Parte 2: Modificar una Copia ---
print("--- Modifying a Copy ---")
## Crear otro array original
original_array_copy = np.array([10, 20, 30, 40, 50])
print(f"Original array: {original_array_copy}")
## Crear una copia del array
copy_array = original_array_copy.copy()
## Modificar el primer elemento de la copia
copy_array[0] = 999
print(f"Copy after modification: {copy_array}")
print(f"Original array after modifying the copy: {original_array_copy}")
Ahora, guarde el archivo y ejecútelo desde la terminal para ver la salida.
python main.py
Debería ver la siguiente salida. Observe cómo el array original cambió cuando se modificó su vista, pero permaneció sin cambios cuando se modificó su copia.
--- Modifying a View ---
Original array: [1 2 3 4 5]
View after modification: [99 2 3 4 5]
Original array after modifying the view: [99 2 3 4 5]
--- Modifying a Copy ---
Original array: [10 20 30 40 50]
Copy after modification: [999 20 30 40 50]
Original array after modifying the copy: [10 20 30 40 50]
Esto demuestra la diferencia fundamental: una vista está vinculada a los datos originales, mientras que una copia es completamente independiente.