Escriba NumPy Array en CSV en Python

Manav Narula 30 enero 2023
  1. Utilice un DataFrame pandas para guardar un array NumPy en un archivo CSV
  2. Utilice la función numpy.savetxt() para guardar un array NumPy en un archivo CSV
  3. Utilice la función tofile() para guardar un array numerosa en un archivo CSV
  4. Use métodos de manejo de archivos para guardar un array numerosa en un archivo CSV
Escriba NumPy Array en CSV en Python

En este tutorial, discutiremos cómo almacenar un array numpy en un archivo CSV.

Utilice un DataFrame pandas para guardar un array NumPy en un archivo CSV

En este método, primero guardaremos el array en un DataFrame pandas y luego convertiremos este DataFrame en un archivo CSV.

El siguiente código muestra cómo podemos lograr esto.

import pandas as pd
import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
pd.DataFrame(a).to_csv("sample.csv")

La función pd.DataFrame almacena el array en un DataFrame, y simplemente lo exportamos a un archivo CSV usando la función to_csv().

Utilice la función numpy.savetxt() para guardar un array NumPy en un archivo CSV

La función savetxt() del módulo numpy puede guardar un array en un archivo de texto. Podemos especificar el formato de archivo, el carácter delimitador y muchos otros argumentos para obtener el resultado final en nuestro formato deseado.

En el siguiente código, guardamos un array en un archivo CSV usando esta función.

import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

np.savetxt("sample.csv", a, delimiter=",")

Utilice la función tofile() para guardar un array numerosa en un archivo CSV

La función tofile() nos permite escribir un array en un archivo de texto o binario. Sin embargo, este método tiene muchos inconvenientes. Es más como una función de conveniencia para el almacenamiento rápido de datos de array. La precisión de la información se pierde ya que almacena todo en una sola línea, por lo que este método no es una buena opción para archivos destinados a archivar datos. Algunos de estos problemas se pueden solucionar generando los datos como archivos de texto a expensas de la velocidad y el tamaño del archivo.

El siguiente código demuestra el uso de esta función.

import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

a.tofile("sample.csv", sep=",")

Use métodos de manejo de archivos para guardar un array numerosa en un archivo CSV

Podemos usar métodos tradicionales de manejo de archivos, pero no es recomendable usarlos ya que tales métodos requieren muchas modificaciones dependiendo de la forma del array y pueden consumir mucha memoria.

El siguiente código muestra un ejemplo de este método.

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
csv_rows = ["{},{},{}".format(i, j, k) for i, j, k in a]
csv_text = "\n".join(csv_rows)

with open("sample.csv", "w") as f:
    f.write(csv_text)

Desempaquetamos el array en una lista de filas y luego devolvemos una sola cadena uniéndonos a esta lista usando la función join(). Luego escribimos esta cadena en un archivo CSV.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - NumPy Array