Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
¿Manera eficiente de leer parcialmente archivos numpy grandes?

Tengo un enorme tensor 3D numpy que está almacenado en un archivo en mi disco (que normalmente leo usando np.load ). Este es un archivo .npy binario. Al usar np.load , rápidamente termino usando la mayor parte de mi memoria.

Afortunadamente, en cada ejecución del programa, solo necesito una cierta porción del enorme tensor. La rebanada es de un tamaño fijo y sus dimensiones se proporcionan desde un módulo externo.

¿Cuál es la mejor manera de hacer esto? La única forma en que pude averiguarlo es almacenar de alguna manera esta matriz numpy en una base de datos MySQL. Pero estoy seguro de que hay formas mucho mejores / más fáciles. También estaré feliz de construir mi archivo de tensor 3D de manera diferente si ayuda.


¿Cambia la respuesta si mi tensor es de naturaleza escasa?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

use numpy.load normalmente, pero asegúrese de especificar la palabra clave mmap_mode para que la matriz se mantenga en el disco y solo los bits necesarios se carguen en la memoria al acceder.

mmap_mode : {Ninguno, 'r+', 'r', 'w+', 'c'}, opcional Si no es Ninguno, entonces mapee en memoria el archivo, usando el modo dado (vea numpy.memmap para una descripción detallada de los modos ). Una matriz mapeada en memoria se mantiene en el disco. Sin embargo, se puede acceder a él y dividirlo como cualquier ndarray. El mapeo de memoria es especialmente útil para acceder a pequeños fragmentos de archivos grandes sin leer todo el archivo en la memoria.

Los modos se describen en numpy.memmap :

modo: {'r+', 'r', 'w+', 'c'}, opcional El archivo se abre en este modo: 'r' Abre el archivo existente solo para lectura. 'r+' Abre un archivo existente para lectura y escritura. 'w+' Crea o sobrescribe un archivo existente para lectura y escritura. 'c' Copia en escritura: las asignaciones afectan los datos en la memoria, pero los cambios no se guardan en el disco. El archivo en el disco es de solo lectura.

*Asegúrese de no usar el modo 'w+', ya que borrará el contenido de su archivo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda