Asignación de matriz Numpy: diferencias en la asignación de memoria
En NumPy, hay tres formas comunes de asignar valores a una matriz:
B = A
Cuando usa B = A, no está creando una nueva matriz. En su lugar, está vinculando un nuevo nombre (B) a la matriz existente (A). Como resultado, cualquier modificación realizada en una matriz se reflejará en la otra.
B[:] = A
Esta sintaxis crea una nueva matriz B con el mismas dimensiones y valores que A. La matriz original A no se modifica. Este método requiere menos asignación de memoria en comparación con numpy.copy.
numpy.copy(B, A)
Este método no es legal tal como está escrito. Debería ser B = numpy.copy(A). numpy.copy crea una nueva matriz B con las mismas dimensiones y valores que A. Este método requiere más asignación de memoria en comparación con B[:] = A porque crea una copia física separada de los datos de la matriz original.
¿Cuándo se asigna memoria adicional?
Se asigna memoria adicional cuando se utiliza numpy.copy para crear una nueva copia física de la matriz. Esto se debe a que asigna un nuevo bloque contiguo de memoria para los datos copiados.
¿Cuándo no se asigna la memoria?
La memoria no se asigna cuando se usa B = A porque simplemente estás cambiando el nombre de la matriz original. La memoria tampoco se asigna cuando usa B[:] = A porque reutiliza la misma ubicación de memoria que la matriz original.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3