zeros matrices loadtxt python csv numpy

python - matrices - numpy loadtxt



Lea el archivo CSV para numpy array, la primera fila como cadenas, el resto como float (3)

Tengo datos almacenados en un CSV donde la primera fila son cadenas (nombres de columna) y las filas restantes son números. ¿Cómo almaceno esto en una matriz numpy? Todo lo que puedo encontrar es cómo establecer el tipo de datos para las columnas, pero no para las filas.

En este momento solo me estoy saltando los encabezados para hacer los cálculos, pero necesito tener los encabezados en la versión final. Pero si dejo los encabezados, establece toda la matriz como una cadena y los cálculos fallan.

Esto es lo que tengo:

data = np.genfromtxt(path_to_csv, dtype=None, delimiter='','', skip_header=1)


La idea general de una matriz numpy es que todos los elementos son del mismo tipo. Lea los encabezados en una lista de Python y adminístrelos por separado de los números. También puede crear una matriz estructurada (una matriz de registros) y, en este caso, puede usar los encabezados para nombrar los campos en los registros. Almacenarlos en la matriz sería redundante en ese caso.


No estoy seguro de lo que quiere decir cuando dice que necesita los encabezados en la versión final, pero puede generar una matriz estructurada donde se accede a las columnas mediante cadenas como esta:

data = np.genfromtxt(path_to_csv, dtype=None, delimiter='','', names=True)

y luego acceda a las columnas con data[''col1_name''] , data[''col2_name''] , etc.


Puede mantener los nombres de las columnas si usa el argumento names=True en la función np.genfromtxt

data = np.genfromtxt(path_to_csv, dtype=float, delimiter='','', names=True)

Tenga en cuenta el dtype=float , que convertirá sus datos a flotar. Esto es más eficiente que usar dtype=None , que le pide a np.genfromtxt que adivine el tipo de datos por usted.

La salida será una matriz estructurada, donde puede acceder a columnas individuales por su nombre. Los nombres serán tomados de su primera fila. Algunas modificaciones pueden ocurrir, los espacios en el nombre de una columna se cambiarán a _ por ejemplo. La documentation debe cubrir la mayoría de las preguntas que pueda tener.