¿Cómo puedo leer datos CSV en una matriz de registros en NumPy?
Me pregunto si existe una forma directa de importar el contenido de un archivo CSV a una matriz de registros, del mismo modo que las familias read.table()
, read.delim()
y read.csv()
importan datos al marco de datos de R's?
¿O la mejor manera es utilizar csv.reader() y luego aplicar algo como numpy.core.records.fromrecords()
?
376
3
Puede utilizar el método
genfromtxt()
de Numpy para hacerlo, estableciendo el kwargdelimiter
a una coma.Puede encontrar más información sobre la función en su respectiva documentación.
Yo recomendaría la función [
read_csv
][1] de la bibliotecapandas
:Esto da un [DataFrame][2] de pandas - permitiendo [muchas funciones útiles de manipulación de datos que no están disponibles directamente con arrays de registros de numpy][3].
Yo también recomendaría
genfromtxt
. Sin embargo, como la pregunta pide un [array de registros][4], en lugar de un array normal, hay que añadir el parámetrodtype=None
a la llamadagenfromtxt
:Dado un archivo de entrada,
miarchivo.csv
:da un array:
y
da una matriz de registros:
También puede probar
recfromcsv()
que puede adivinar los tipos de datos y devolver un array de registros con el formato adecuado.