¿Por qué Python copia matrices NumPy donde la longitud de las dimensiones es la misma?
Tengo un problema al hacer referencia a una matriz NumPy. Tengo una matriz de la forma
import numpy as np
a = [np.array([0.0, 0.2, 0.4, 0.6, 0.8]),
np.array([0.0, 0.2, 0.4, 0.6, 0.8]),
np.array([0.0, 0.2, 0.4, 0.6, 0.8])]
Si ahora creo una nueva variable,
b = np.array(a)
y hace
b[0] += 1
print(a)
luegoa
no está cambiando.
a = [array([0. , 0.2, 0.4, 0.6, 0.8]),
array([0. , 0.2, 0.4, 0.6, 0.8]),
array([0. , 0.2, 0.4, 0.6, 0.8])]
Pero si hago lo mismo con:
a = [np.array([0.0, 0.2, 0.4, 0.6, 0.8]),
np.array([0.0, 0.2, 0.4, 0.6, 0.8]),
np.array([0.0, 0.2, 0.4, 0.6])]
so eliminé un número al final de la última dimensión. Luego hago esto de nuevo:
b = np.array(a)
b[0] += 1
print(a)
Ahoraa
está cambiando, lo que pensé es el comportamiento normal en Python.
a = [array([1. , 1.2, 1.4, 1.6, 1.8]),
array([0. , 0.2, 0.4, 0.6, 0.8]),
array([0. , 0.2, 0.4, 0.6])]
¿Alguien puede explicarme esto?