Trabajar con datos de Excel en Python es común. A menudo implica trasladar datos de Excel a un formato que se pueda manipular de manera eficiente. Convertir los datos de Excel en un formato listo para el análisis puede ser complicado. En esta publicación del blog, aprenderás cómo convertir Excel a matrices de NumPy en solo unas pocas líneas de código.
¿Por qué NumPy?
NumPy (Python Numérico) es una biblioteca de Python de código abierto. Es la columna vertebral de la ciencia de datos y el aprendizaje automático en Python. NumPy proporciona operaciones rápidas de arreglos y computación numérica eficiente. Funciona sin problemas con pandas, TensorFlow y scikit-learn. La biblioteca admite arreglos multidimensionales, matrices, álgebra lineal y transformadas de Fourier. Los arreglos utilizan memoria contigua, lo que los hace más rápidos que las listas de Python. Esta velocidad hace de NumPy una herramienta fundamental para la computación científica y el análisis de datos.
Excel se utiliza ampliamente para almacenar conjuntos de datos, pero no está optimizado para flujos de trabajo de Python. Los métodos de conversión tradicionales a menudo requieren bibliotecas adicionales, múltiples pasos y análisis manual. Aspose.Cells te permite exportar datos de Excel, TSV, CSV y JSON directamente en arrays de NumPy. Esto conecta las hojas de cálculo con las herramientas numéricas de Python.
What is Aspose.Cells for Python?
Aspose.Cells es la mejor biblioteca de Excel para desarrolladores de Python.Permite leer, crear y manipular hojas de cálculo sin depender de Microsoft Excel. La variante de Python a través de .NET incrusta la versión .NET de Aspose.Cells y la expone a Python. Aspose.Cells simplifica el proceso de convertir Excel a NumPy. Te permite exportar un libro de trabajo completo, una hoja de cálculo, un rango, una fila, una columna o incluso un objeto de lista directamente en ndarrays de NumPy. Esto significa que puedes pasar de archivos de Excel sin procesar a datos limpios y listos para usar para análisis o aprendizaje automático con un esfuerzo mínimo.
Puedes instalarlo desde PyPI:
pip install aspose‑cells‑python
Una vez instalada, importa la biblioteca junto con NumPy:
import aspose.cells as cells
import numpy as np
Cómo convertir un libro de trabajo de Excel a NumPy
Un libro de trabajo puede contener múltiples hojas de cálculo. Puedes exportar un libro de Excel entero a un ndarray de NumPy de una sola vez. Esto es útil cuando deseas procesar datos de todas las hojas directamente en Python.
Sigue los pasos a continuación para convertir un libro de Excel en un ndarray de NumPy:
- Cargue el libro de Excel utilizando la clase
Workbook
. - Acceda a todas las hojas de trabajo del libro de trabajo.
- Recorra cada hoja de trabajo para leer sus filas y columnas utilizadas.
- Extraer valores de celdas fila por fila.
- Almacena los datos de cada hoja en una lista de listas.
- Convertir los datos recopilados en un ndarray de NumPy usando np.asarray().
Aquí hay un script de Python simplificado que exporta un libro de muestra:
import aspose.cells as cells
import numpy as np
# cargar libro
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets
# preparar una lista vacía para contener datos de la hoja
sheets_data = []
# recorrer hojas de trabajo
for sheet in sheets:
# sheet = workbook.worksheets.get(sheetindex)
sheet_cells = sheet.cells
max_row = sheet_cells.max_data_row + 1 # number of populated rows
max_col = sheet_cells.max_data_column + 1 # number of populated columns
sheet_rows = []
for r in range(max_row):
row_values = []
for c in range(max_col):
cell = sheet_cells.check_cell(r, c)
row_values.append(cell.value if cell else "")
sheet_rows.append(row_values)
sheets_data.append(sheet_rows)
# convertir a ndarray con dtype=object para preservar cadenas
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)

Cómo convertir un libro de Excel a NumPy
Este script reemplaza cualquier celda en blanco con cadenas vacías y combina todas las hojas de trabajo en un solo arreglo NumPy. El arreglo final excelarray es tridimensional: el primer nivel representa hojas, el segundo representa filas y el tercero representa columnas.
[[['City', 'Region', 'Store'],
['Chicago', 'Central', '3055'],
['New York', 'East', '3036'],
['Detroit', 'Central', '3074']],
[['City2', 'Region2', 'Store3'],
['Seattle', 'West', '3000'],
['philadelph', 'East', '3082'],
['Detroit', 'Central', '3074']],
[['City3', 'Region3', 'Store3'],
['Seattle', 'West', '3166'],
['New York', 'East', '3090'],
['Chicago', 'Central', '3055']]]
Convirtiendo una sola hoja de cálculo a NumPy
A veces, puede que desee trabajar con una sola hoja de cálculo en lugar de todo un libro de trabajo. Puede extraer directamente los valores de las celdas de una hoja de cálculo y convertirlos en un ndarray de NumPy siguiendo los pasos a continuación:
- Cargue el archivo de Excel con la clase
Workbook
. - Acceda a la hoja de cálculo objetivo por su índice.
- Obtener las filas y columnas utilizadas al máximo.
- Recorra cada fila y columna para recopilar los valores de las celdas.
- Almacena los datos extraídos en una lista.
- Convertir la lista a un ndarray de NumPy con np.asarray().
Aquí está el script de Python que exporta una sola hoja de trabajo:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
# acceder a la primera hoja de trabajo
sheet = workbook.worksheets[0]
# obtener el máximo de filas y columnas con datos
max_row = sheet.cells.max_data_row + 1
max_col = sheet.cells.max_data_column + 1
# extract data
rows = []
for r in range(max_row):
row_values = []
for c in range(max_col):
cell = sheet.cells.check_cell(r, c)
row_values.append(cell.value if cell else "")
rows.append(row_values)
# convertir a ndarray de numpy
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)
Esto crea un ndarray 2D donde las filas se mapean a las filas de Excel y las columnas se mapean a las columnas de Excel.
[['City' 'Region' 'Store']
['Chicago' 'Central' '3055']
['New York' 'East' '3036']
['Detroit' 'Central' '3074']]
Cómo convertir un rango de Excel a NumPy
En ciertos casos, solo necesitas un rango específico de celdas. Aspose.Cells te permite definir un rango y exportarlo directamente a un ndarray de NumPy.
Sigue los pasos a continuación:
- Cargue el libro de trabajo con la clase
Workbook
. - Selecciona la hoja de trabajo objetivo.
- Defina un rango utilizando el método
worksheet.cells.createrange()
. - Recorra las filas y columnas del rango para extraer valores.
- Convertir los valores en un ndarray de NumPy usando np.asarray().
El siguiente ejemplo de código muestra cómo convertir un rango de celdas de Excel a un ndarray de NumPy:
import aspose.cells as cells
import numpy as np
# cargar libro de trabajo
workbook = cells.Workbook("sample_data.xlsx")
# seleccionar la primera hoja de trabajo
sheet = workbook.worksheets.get(0)
# definir un rango (B1 a C3)
cell_range = sheet.cells.create_range("B1", "C3")
# extraer datos del rango
range_data = []
for r in range(cell_range.row_count):
row_values = []
for c in range(cell_range.column_count):
cell = sheet.cells.check_cell(r, c)
row_values.append(cell.value if cell else "")
range_data.append(row_values)
# convertir a ndarray de numpy
range_array = np.asarray(range_data, dtype=object)
print(range_array)
Si el rango seleccionado cubre dos columnas y tres filas, la matriz resultante será de 3×2, como:
[['City' 'Region']
['Chicago' 'Central']
['New York' 'East']]
Convertir una tabla de Excel (ListObject) a NumPy
Una tabla de Excel es un rango estructurado de datos con encabezados y filas. En Aspose.Cells, esto se representa como un ListObject. Puedes exportar fácilmente el contenido de una tabla de Excel a un ndarray de NumPy para un procesamiento adicional en Python.
- Cargue el libro y seleccione la hoja de trabajo.
- Acceda al ListObject (Tabla de Excel) desde la hoja de cálculo.
- Exporta los datos de la tabla a un arreglo bidimensional.
- Convierte el arreglo en un ndarray de NumPy.
- Usa el ndarray para flujos de trabajo de ciencia de datos o aprendizaje automático.
El siguiente ejemplo de código muestra cómo exportar una tabla de Excel (ListObject) a NumPy:
import aspose.cells as cells
import numpy as np
# Cargar archivo de Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
# Crea una tabla que cubra A1:C4 con encabezados.
index = sheet.list_objects.add("A1", "C4", True)
table = sheet.list_objects[index]
rows = []
for r in range(table.start_row, table.end_row + 1):
row_vals = []
for c in range(table.start_column, table.end_column + 1):
cell = sheet.cells.check_cell(r, c)
row_vals.append(cell.value if cell else "")
rows.append(row_vals)
list_object_array = np.asarray(rows, dtype=object)
print(list_object_array)
El ndarray de NumPy resultante contendrá las filas y columnas de la tabla de Excel, incluidos los encabezados si son parte del rango de datos.
[['City', 'Region', 'Store'],
['Chicago', 'Central', '3055'],
['New York', 'East', '3036'],
['Detroit', 'Central', '3074']]
Cómo convertir una fila de Excel a NumPy
A veces solo necesitas datos de una sola fila en Excel. Aspose.Cells hace que sea sencillo extraer una fila y cargarla directamente en un ndarray de NumPy.
- Cargue el archivo de Excel.
- Selecciona la hoja de trabajo.
- Elige el índice de fila que deseas exportar.
- Exporta los valores de la fila como una matriz.
- Convertir la matriz en un ndarray de NumPy para su procesamiento.
El siguiente código de Python muestra cómo convertir una fila de una hoja de Excel en un ndarray de NumPy:
import aspose.cells as cells
import numpy as np
# Cargar archivo de Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells
max_col = sheet_cells.max_data_column + 1
# elija una fila (por ejemplo, la última fila de datos)
row_index = sheet_cells.max_data_row
row_vals = []
for c in range(max_col):
cell = sheet_cells.check_cell(row_index, c)
row_vals.append(cell.value if cell else "")
row_array = np.asarray(row_vals, dtype=object)
print(row_array)
El ndarray de NumPy resultante será un array unidimensional que contiene todos los valores de la fila seleccionada.
['Detroit' 'Central' 3074]
Convertir una columna de Excel a NumPy
En algunos casos, es posible que solo necesite valores de una sola columna de una hoja de Excel. Aspose.Cells le permite exportar una columna fácilmente y transformarla en un ndarray de NumPy.
- Cargue el archivo de Excel.
- Selecciona la hoja de trabajo objetivo.
- Elija el índice de columna para exportar.
- Exporta los valores de la columna.
- Convierte los valores en un ndarray de NumPy.
El siguiente código de Python muestra cómo convertir una columna de una hoja de Excel a un ndarray de NumPy:
import aspose.cells as cells
import numpy as np
# Cargar archivo de Excel
workbook = cells.Workbook("D:\\Files\\sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells
max_row = sheet_cells.max_data_row + 1
# elija una columna (por ejemplo, la última columna de datos)
col_index = sheet_cells.max_data_column
col_vals = []
for r in range(max_row):
cell = sheet_cells.check_cell(r, col_index)
col_vals.append(cell.value if cell else "")
column_array = np.asarray(col_vals, dtype=object)
print(column_array)
El ndarray de NumPy resultante será un array unidimensional que contiene todos los valores de la columna seleccionada.
['Store' 3055 3036 3074]
Consejos para trabajar con Aspose.Cells y NumPy
Consideraciones de memoria: Convertir libros de trabajo muy grandes en matrices de NumPy puede consumir una cantidad significativa de memoria. Procese las hojas de cálculo individualmente o lea rangos específicos si es posible.
Tipos de datos: Si su hoja de cálculo contiene tipos mixtos (cadenas, números, fechas), especifique dtype=object al convertir listas en arreglos de NumPy. Para datos numéricos homogéneos, puede dejar que NumPy infiera el tipo.
Valores perdidos: Aspose.Cells devuelve None para celdas vacías. En los ejemplos anteriores, las reemplazamos con cadenas vacías. También puedes sustituir np.nan u otro valor centinela dependiendo de tu caso de uso.
Obtén una licencia gratuita
¿Quieres explorar todo el poder de Aspose.Cells for Python? Puedes solicitar una licencia temporal gratuita.Esto te permite probar todas las funciones sin limitaciones ni marcas de evaluación.
Con una licencia temporal, puedes:
- Trabaja con archivos grandes de Excel.
- Apply advanced formatting and styling.
- Realiza conversiones (por ejemplo, Excel a PDF, NumPy y más).
Es la mejor manera de evaluar el rendimiento y la compatibilidad con sus proyectos antes de tomar una decisión de compra.
Recursos Útiles
Aquí hay algunos recursos valiosos para ayudarte a comenzar con Aspose.Cells for Python a través de .NET:
- Documentación del producto
- Referencia de API
- Herramientas de Excel en línea gratuitas
- Tutoriales y Guías para Desarrolladores
Conclusión
Aspose.Cells for Python a través de .NET simplifica la conversión de datos de Excel en arreglos de NumPy. Ya sea que necesite el libro de trabajo completo, una sola hoja, un rango específico, una tabla, una fila o una columna, la biblioteca proporciona métodos claros para iterar a través de las celdas y construir listas que NumPy puede consumir. Al combinar la capacidad de Aspose.Cells para leer muchos formatos de hojas de cálculo con el poder numérico de NumPy, puede integrar los datos de Excel de manera fluida en sus canalizaciones de datos de Python.
Si tiene alguna pregunta, no dude en preguntar en nuestro free support forum, y estaremos encantados de ayudar.