Copia profunda de NumPy

Muhammad Maisam Abbas 30 enero 2023
  1. Copia profunda de NumPy con la función copy.deepcopy() en Python
  2. Copia profunda de NumPy con el enfoque definido por el usuario en Python
Copia profunda de NumPy

Este tutorial presentará los métodos para realizar una copia profunda de un array NumPy en Python.

Copia profunda de NumPy con la función copy.deepcopy() en Python

Python tiene dos tipos de copias, una copia superficial y una copia profunda. Una copia superficial significa que el array copiada contiene solo una referencia a el array original. Significa que cualquier cambio en el array original se reflejará dentro del array copiada. Por otro lado, una copia profunda significa copiar cada elemento del array original en el array copiada. En este tipo de copia, se asigna una nueva ubicación de memoria a cada elemento dentro del array copiada. Esto significa que cualquier cambio en el array original no cambiará nada dentro del array copiada.

La función deepcopy() dentro del módulo copy se utiliza para realizar copias en profundidad de listas, pero también funciona bien con matrices en Python. La función copy.deepcopy() toma el array como argumento de entrada y devuelve una copia en profundidad del array. El siguiente ejemplo de código nos muestra cómo realizar una copia profunda de un array NumPy con la función copy.deepcopy() en Python.

import numpy as np
import copy

array = np.array([1, 2, 3, 4])
array2 = copy.deepcopy(array)
array[0] = array[0] + 1
print(array)
print(array2)

Producción :

[2 2 3 4]
[1 2 3 4]

En el código anterior, copiamos en profundidad el array NumPy array dentro de array2 con la función copy.deepcopy(). Luego modificamos los elementos dentro de la array. El resultado muestra que cambiar los valores dentro del array NumPy array no tiene ningún efecto en el array NumPy array2.

Copia profunda de NumPy con el enfoque definido por el usuario en Python

Otro método de copia profunda de un array NumPy es iterar a través de toda el array y copiar cada elemento dentro de ella. Vea el siguiente ejemplo de código.

import numpy as np

array = np.array([1, 2, 3, 4])
array2 = np.array([x for x in array])
array[1] = 1
print(array)
print(array2)

Producción :

[1 1 3 4]
[1 2 3 4]

En el código anterior, copiamos en profundidad el array NumPy array dentro del array NumPy array2 iterando a través de cada elemento dentro de la array. Luego modificamos los elementos dentro de la array. El resultado muestra que cambiar los valores dentro del array NumPy array no tiene ningún efecto en el array NumPy array2.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn