¿Cómo cargar y guardar una array 3D Numpy en un archivo usando las funciones savetxt() y loadtxt()?

Requisitos previos: numpy.savetxt() , numpy.loadtxt()

Numpy.savetxt() es un método en python en la biblioteca numpy para guardar una array 1D y 2D en un archivo.

Sintaxis: numpy.savetxt(fname, X, fmt=’%.18e’, delimitador=’ ‘, nueva línea=’\n’, encabezado=”, pie de página=”, comentarios=’# ‘, codificación=Ninguno)

numpy.loadtxt() es un método en python en la biblioteca numpy para cargar datos desde un archivo de texto para una lectura más rápida.

Sintaxis: numpy.loadtxt(fname, dtype=’float’, comments=’#’, delimitador=Ninguno, convertidores=Ninguno, skiprows=0, usecols=Ninguno, unpack=False, ndmin=0)

Guardar y cargar arreglos 3D

Como se discutió anteriormente, solo podemos usar una array 1D o 2D en numpy. savetxt(), y si usamos una array de más dimensiones arrojará un ValueError: array 1D o 2D esperada, obtuvo una array 3D en su lugar. Por lo tanto, necesitamos encontrar una manera de guardar y recuperar, al menos para arreglos 3D, así es como puedes hacer esto usando algunos trucos de Python.

  • Paso 1: remodele la array 3D a una array 2D.
  • Paso 2: inserte esta array en el archivo
  • Paso 3: Cargue los datos del archivo para mostrar
  • Paso 4: vuelva a convertir a la array con forma original

Ejemplo:

Python3

import numpy as gfg
  
  
arr = gfg.random.rand(5, 4, 3)
  
# reshaping the array from 3D
# matrice to 2D matrice.
arr_reshaped = arr.reshape(arr.shape[0], -1)
  
# saving reshaped array to file.
gfg.savetxt("geekfile.txt", arr_reshaped)
  
# retrieving data from file.
loaded_arr = gfg.loadtxt("geekfile.txt")
  
# This loadedArr is a 2D array, therefore
# we need to convert it to the original
# array shape.reshaping to get original
# matrice with original shape.
load_original_arr = loaded_arr.reshape(
    loaded_arr.shape[0], loaded_arr.shape[1] // arr.shape[2], arr.shape[2])
  
# check the shapes:
print("shape of arr: ", arr.shape)
print("shape of load_original_arr: ", load_original_arr.shape)
  
# check if both arrays are same or not:
if (load_original_arr == arr).all():
    print("Yes, both the arrays are same")
else:
    print("No, both the arrays are not same")

Producción:

shape of arr:  (5, 4, 3)
shape of load_original_arr:  (5, 4, 3)
Yes, both the arrays are same

Publicación traducida automáticamente

Artículo escrito por chetansinha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *