Array de copia vs vista de NumPy
- Página anterior Tipos de datos de NumPy
- Página siguiente Forma de arreglos de NumPy
La diferencia entre la copia y la vista
La principal diferencia entre la copia y la vista de array es que la copia es un nuevo array, mientras que esta vista es solo una vista del array original.
La copia tiene datos, cualquier cambio realizado en la copia no afectará al array original, y cualquier cambio realizado en el array original no afectará a la copia.
La vista no tiene datos, cualquier cambio realizado en la vista afectará al array original, mientras que cualquier cambio realizado en el array original afectará a la vista.
Copia:
Ejemplo
Realizar una copia, cambiar el array original y luego mostrar dos arrays:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.copy() arr[0] = 61 print(arr) print(x)
La copia no debe ser afectada por los cambios realizados en el array original.
Vista:
Ejemplo
Crear una vista, cambiar el array original y luego mostrar dos arrays:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() arr[0] = 61 print(arr) print(x)
La vista debe ser afectada por los cambios realizados en el array original.
Cambios en la vista:
Ejemplo
Crear una vista, cambiar la vista y mostrar dos arrays:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() x[0] = 31 print(arr) print(x)
El array original debe ser afectado por los cambios realizados en la vista.
Verificar si el array tiene datos
Como se mencionó anteriormente, la copia tiene datos mientras que la vista no tiene datos, pero ¿cómo podemos verificarlo?
Cada array NumPy tiene una propiedad base
Si el array tiene datos, esta propiedad base devuelve Ninguno
.
De lo contrario,base
La propiedad referenciará el objeto original.
Ejemplo
Imprimir el valor de la propiedad base para verificar si el array tiene sus propios datos:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.copy() y = arr.view() print(x.base) print(y.base)
Copia de vuelta Ninguno
.
Vista regresar al array original.
- Página anterior Tipos de datos de NumPy
- Página siguiente Forma de arreglos de NumPy