Pregunta ¿Cuándo se debe usar una vista de memoria? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

La descripción completa de memoryview se puede encontrar aquí:

Crear un memoryview que referencias obj. obj debe ser compatible con el protocolo de buffer. Los objetos incorporados que admiten el protocolo de búfer incluyen bytes y bytearray.

UN memoryview tiene la noción de un elemento, que es la unidad de memoria atómica manejada por el objeto de origen obj. Para muchos tipos simples como bytes y bytearray, un elemento es un byte único, pero otros tipos como array.array puede tener elementos más grandes.


27
2018-01-30 20:44


origen


Respuestas:


Una vista de memoria es esencialmente una estructura de matriz NumPy generalizada en Python (sin las matemáticas). Le permite compartir memoria entre estructuras de datos (cosas como imágenes PIL, bases de datos SQLlite, matrices NumPy, etc.) sin copiar primero. Esto es muy importante para grandes conjuntos de datos.

Con él puedes hacer cosas como memoria-mapa en un archivo muy grande, cortar una porción de ese archivo y hacer cálculos en esa pieza (más fácil si estás usando NumPy).


19
2018-04-17 04:22



De la documentación, creo que se usa para "acceder a los datos internos de un objeto que admite el protocolo de almacenamiento intermedio sin copiar", por lo que puede hacer cosas con grandes cantidades de datos sin llenar su memoria. No sé si quieres ejemplos, pero no puedo pensar en ninguno, desafortunadamente.


2
2018-01-30 20:52