Importando datos con Genfromtxt

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo importar datos utilizando la función numpy.genfromtxt. Esta función nos permite leer datos tabulares de diversas fuentes y convertirlos en matrices de NumPy. Exploraremos diferentes opciones para definir la entrada, dividir las líneas en columnas, elegir columnas, establecer el tipo de datos y ajustar la conversión.

Nota: Puedes escribir código en 03-io-genfromtxt.ipynb. Algunas operaciones de impresión se omiten en los pasos, y puedes imprimir la salida según sea necesario.

Importando las bibliotecas necesarias

Primero, importemos las bibliotecas necesarias. Usaremos la biblioteca numpy para crear matrices y el módulo io de la biblioteca io para crear objetos similares a archivos.

import numpy as np
from io import StringIO

Definiendo la entrada

La función numpy.genfromtxt requiere la fuente de los datos como el único argumento obligatorio. Puede ser una cadena, una lista de cadenas, un generador o un objeto similar a un archivo abierto con un método read.

data = "1, 2, 3\n4, 5, 6"

Dividiendo las líneas en columnas

El argumento delimitador se utiliza para definir cómo se deben dividir las líneas en columnas. Por defecto, numpy.genfromtxt asume delimitador = None, lo que significa que la línea se divide en blanco (incluyendo tabulaciones).

np.genfromtxt(StringIO(data), delimitador=",")

Elegir columnas

El argumento usecols se utiliza para seleccionar qué columnas importar. acepta un solo entero o una secuencia de enteros que corresponden a los índices de las columnas a importar.

np.genfromtxt(StringIO(data), usecols=(0, -1))

Estableciendo el tipo de datos

El argumento dtype se utiliza para controlar cómo se convierten las cadenas a otros tipos. Puede ser un solo tipo, una secuencia de tipos, una cadena separada por comas, un diccionario, una secuencia de tuplas, un objeto numpy.dtype existente o None para determinar el tipo a partir de los datos mismos.

np.genfromtxt(StringIO(data), dtype=float)

Ajustando la conversión

El argumento conversores nos permite definir funciones de conversión para manejar conversiones más complejas. acepta un diccionario con índices de columna o nombres de columna como claves y funciones de conversión como valores.

convertfunc = lambda x: float(x.strip(b"%"))/100.
np.genfromtxt(StringIO(data), conversores={1: convertfunc})

Usando valores faltantes y de relleno

Los argumentos missing_values y filling_values se utilizan para manejar datos faltantes. El argumento missing_values se utiliza para reconocer datos faltantes, y el argumento filling_values se utiliza para proporcionar un valor para las entradas faltantes.

np.genfromtxt(StringIO(data), missing_values="N/A", filling_values=0)

Usando funciones de atajo

El módulo numpy.lib.npyio proporciona funciones de atajo derivadas de numpy.genfromtxt. Estas funciones tienen valores predeterminados diferentes y devuelven una matriz estándar de NumPy o una matriz enmascarada.

from numpy.lib.npyio import recfromtxt

recfromtxt(StringIO(data), delimitador=",")

Resumen

En este laboratorio, aprendimos cómo importar datos utilizando la función numpy.genfromtxt. Exploramos diferentes opciones para definir la entrada, dividir las líneas en columnas, elegir columnas, establecer el tipo de datos y ajustar la conversión. También aprendimos sobre las funciones de atajo proporcionadas por el módulo numpy.lib.npyio.