Leer CSV a NumPy Array en Python

Manav Narula 6 febrero 2023
  1. Utilice la función numpy.genfromtxt() para leer datos CSV en un array NumPy
  2. Utilice un DataFrame pandas para leer datos CSV en un array NumPy
  3. Utilice el módulo csv para leer datos CSV en un array numerosa
Leer CSV a NumPy Array en Python

Este tutorial discutirá cómo leer datos de un archivo CSV y almacenarlos en un array numpy.

Utilice la función numpy.genfromtxt() para leer datos CSV en un array NumPy

La función genfromtxt() se utiliza con frecuencia para cargar datos desde archivos de texto. Podemos leer datos de archivos CSV usando esta función y almacenarlos en un array numpy. Esta función tiene muchos argumentos disponibles, lo que facilita la carga de los datos en nuestro formato deseado. Podemos especificar el delimitador, lidiar con los valores faltantes, eliminar los caracteres especificados y especificar el tipo de datos de los datos utilizando los diferentes argumentos de esta función.

Por ejemplo,

from numpy import genfromtxt

data = genfromtxt("sample.csv", delimiter=",", skip_header=1)
print(data)

Producción :

[[1. 2. 3.]
 [4. 5. 6.]]

Muchas otras funciones se derivan de esto, como recfromtxt() y recfromcsv() que pueden realizar la misma función pero tienen diferentes valores predeterminados.

En el siguiente código, leeremos datos de un archivo CSV usando el archivo recfromcsv().

import numpy as np

data = np.recfromcsv("sample.csv", skip_header=0)
print(data)

Producción :

[(1, 2, 3) (4, 5, 6)]

Tenga en cuenta que no tuvimos que especificar el delimitador como una coma y el valor diferente para especificar la fila del encabezado.

Utilice un DataFrame pandas para leer datos CSV en un array NumPy

También podemos hacer uso de un DataFrame pandas para leer datos CSV en un array. Para esto, leeremos los datos a un DataFrame y luego lo convertiremos en un array NumPy usando la función values() de la biblioteca pandas.

El siguiente código implementa esto.

from pandas import read_csv

df = read_csv("sample.csv")
data = df.values
print(data)

Producción :

[[1 2 3]
 [4 5 6]]

Utilice el módulo csv para leer datos CSV en un array numerosa

El módulo csv se utiliza para leer y escribir datos en archivos CSV de manera eficiente. Este método leerá los datos de un archivo CSV usando este módulo y los almacenará en una lista. Luego procederemos a convertir esta lista en un array numpy.

El siguiente código explicará esto.

import csv
import numpy as np

with open("sample.csv", "r") as f:
    data = list(csv.reader(f, delimiter=";"))

data = np.array(data)
print(data)

Producción :

[['1,2,3']
 ['4,5,6']]
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