"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cuándo se asigna memoria adicional en la asignación de matriz NumPy?

¿Cuándo se asigna memoria adicional en la asignación de matriz NumPy?

Publicado el 2024-11-03
Navegar:560

When Is Additional Memory Allocated in NumPy Array Assignment?

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
  • B[:] = A
  • numpy.copia(B, A)

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.

Declaración de liberación Este artículo se reimprime en: 1729560494 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

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