Travailler avec des données Excel dans Python est courant. Cela implique souvent de déplacer des données d’Excel vers un format qui peut être manipulé efficacement. Convertir les données Excel en un format prêt pour l’analyse peut être délicat. Dans cet article de blog, vous apprendrez comment convertir Excel en tableaux NumPy en juste quelques lignes de code.

Pourquoi NumPy ?

NumPy (Python Numérique) est une bibliothèque Python open-source. C’est la colonne vertébrale de la science des données et de l’apprentissage automatique en Python. NumPy fournit des opérations rapides sur des tableaux et un calcul numérique efficace. Il fonctionne parfaitement avec pandas, TensorFlow et scikit-learn. La bibliothèque prend en charge les tableaux multidimensionnels, les matrices, l’algèbre linéaire et les transformations de Fourier. Les tableaux utilisent de la mémoire contiguë, ce qui les rend plus rapides que les listes Python. Cette rapidité fait de NumPy un outil essentiel pour le calcul scientifique et l’analyse des données.

Excel est largement utilisé pour stocker des ensembles de données, mais il n’est pas optimisé pour les workflows Python. Les méthodes de conversion traditionnelles nécessitent souvent des bibliothèques supplémentaires, plusieurs étapes et un parsing manuel. Aspose.Cells vous permet d’exporter des données depuis Excel, TSV, CSV et JSON directement dans des tableaux NumPy. Cela connecte les tableurs avec les outils numériques de Python.

What is Aspose.Cells for Python?

Aspose.Cells est la meilleure bibliothèque Excel pour les développeurs Python.Elle permet de lire, créer et manipuler des feuilles de calcul sans dépendre de Microsoft Excel. La variante Python via .NET intègre la version .NET d’Aspose.Cells et l’expose à Python. Aspose.Cells simplifie le processus de conversion d`Excel en NumPy. Elle vous permet d’exporter un classeur entier, une feuille de calcul, une plage, une ligne, une colonne, ou même un objet liste directement en ndarrays NumPy. Cela signifie que vous pouvez passer de fichiers Excel bruts à des données propres, prêtes à être utilisées pour l’analyse ou l’apprentissage automatique avec un effort minimal.

Vous pouvez l’installer à partir de PyPI :

pip install aspose‑cells‑python

Une fois installé, importez la bibliothèque avec NumPy :

import aspose.cells as cells
import numpy as np

Comment convertir un classeur Excel en NumPy

Un classeur peut contenir plusieurs feuilles de calcul. Vous pouvez exporter un classeur Excel entier en un tableau ndarray NumPy en une seule fois. C’est pratique lorsque vous souhaitez traiter des données de toutes les feuilles directement dans Python.

Suivez les étapes ci-dessous pour convertir un classeur Excel en un tableau NumPy ndarray :

  1. Charger le classeur Excel en utilisant la classe Workbook.
  2. Accédez à toutes les feuilles de calcul du classeur.
  3. Parcourez chaque feuille de calcul pour lire ses lignes et colonnes utilisées.
  4. Extraire les valeurs des cellules ligne par ligne.
  5. Stockez les données de chaque feuille dans une liste de listes.
  6. Convertissez les données collectées en un ndarray NumPy en utilisant np.asarray().

Voici un script Python simplifié qui exporte un classeur d’exemple :

import aspose.cells as cells
import numpy as np

# load workbook
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets

# préparez une liste vide pour contenir les données de la feuille
sheets_data = []

# boucle à travers les feuilles de calcul
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 en ndarray avec dtype=object pour préserver les chaînes de caractères
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)
Comment convertir un classeur Excel en NumPy

Comment convertir un classeur Excel en NumPy

Ce script remplace toutes les cellules vides par des chaînes vides et combine toutes les feuilles de calcul en un seul tableau NumPy. Le tableau final excelarray est tridimensionnel : le premier niveau représente les feuilles, le deuxième représente les lignes et le troisième représente les colonnes.

[[['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']]]

Conversion d’une seule feuille de calcul en NumPy

Parfois, vous pouvez vouloir travailler avec une seule feuille de calcul au lieu d’un classeur entier. Vous pouvez directement extraire les valeurs des cellules d’une feuille de calcul et les convertir en un tableau NumPy ndarray en suivant les étapes ci-dessous :

  1. Chargez le fichier Excel avec la classe Workbook.
  2. Accédez à la feuille de calcul cible par son index.
  3. Obtenez le maximum de lignes et de colonnes utilisées.
  4. Parcourez chaque ligne et chaque colonne pour collecter les valeurs des cellules.
  5. Stockez les données extraites dans une liste.
  6. Convertissez la liste en un tableau NumPy avec np.asarray().

Voici le script Python qui exporte une seule feuille de calcul :

import aspose.cells as cells
import numpy as np

# load workbook
workbook = cells.Workbook("sample_data.xlsx")

# accéder à la première feuille de calcul
sheet = workbook.worksheets[0]

# get max rows and columns with data
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 en ndarray numpy
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)

Cela crée un tableau ndarray 2D où les lignes correspondent aux lignes Excel et les colonnes correspondent aux colonnes Excel.

[['City' 'Region' 'Store']    
 ['Chicago' 'Central' '3055'] 
 ['New York' 'East' '3036']   
 ['Detroit' 'Central' '3074']]

Comment convertir une plage d’Excel en NumPy

Dans certains cas, vous avez seulement besoin d’une plage spécifique de cellules. Aspose.Cells vous permet de définir une plage et de l’exporter directement vers un tableau ndarray de NumPy.

Suivez les étapes ci-dessous :

  1. Chargez le classeur avec la classe Workbook.
  2. Sélectionnez la feuille de calcul cible.
  3. Définir un intervalle en utilisant la méthode worksheet.cells.createrange().
  4. Parcourez les lignes et les colonnes de la plage pour extraire les valeurs.
  5. Convertir les valeurs en un tableau NumPy ndarray en utilisant np.asarray().

L’exemple de code suivant montre comment convertir une plage de cellules d’Excel en un tableau NumPy ndarray :

import aspose.cells as cells
import numpy as np

# charger le classeur
workbook = cells.Workbook("sample_data.xlsx")

# sélectionner la première feuille de calcul
sheet = workbook.worksheets.get(0)

# définir une plage (B1 à C3)
cell_range = sheet.cells.create_range("B1", "C3")

# extract data from range
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 en tableau ndarray numpy
range_array = np.asarray(range_data, dtype=object)
print(range_array)

Si la plage sélectionnée couvre deux colonnes et trois lignes, le tableau résultant sera de 3×2, tel que :

[['City' 'Region']
 ['Chicago' 'Central']
 ['New York' 'East']]

Convertir un tableau Excel (ListObject) en NumPy

Un tableau Excel est une plage de données structurée avec des en-têtes et des lignes. Dans Aspose.Cells, cela est représenté comme un ListObject. Vous pouvez facilement exporter le contenu d’un tableau Excel dans un tableau NumPy ndarray pour un traitement ultérieur en Python.

  1. Chargez le classeur et sélectionnez la feuille de calcul.
  2. Accédez à l’objet de liste (tableau Excel) à partir de la feuille de calcul.
  3. Exportez les données du tableau dans un tableau à deux dimensions.
  4. Convertissez le tableau en un ndarray NumPy.
  5. Utilisez le ndarray pour les flux de travail en science des données ou en apprentissage automatique.

L’exemple de code suivant montre comment exporter un tableau Excel (ListObject) vers NumPy :

import aspose.cells as cells
import numpy as np

# Charger le fichier Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)

# Créer un tableau couvrant A1:C4 avec des en-têtes
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)

Le ndarray NumPy résultant contiendra les lignes et les colonnes du tableau Excel, y compris les en-têtes s’ils font partie de la plage de données.

[['City', 'Region', 'Store'],
 ['Chicago', 'Central', '3055'],
 ['New York', 'East', '3036'],
 ['Detroit', 'Central', '3074']]

Comment convertir une ligne d’Excel en NumPy

Parfois, vous n`avez besoin que de données d’une seule ligne dans Excel. Aspose.Cells permet d’extraire une ligne facilement et de la charger directement dans un tableau ndarray NumPy.

  1. Charger le classeur Excel.
  2. Sélectionnez la feuille de calcul.
  3. Choisissez l’index de ligne que vous souhaitez exporter.
  4. Exportez les valeurs de la ligne sous forme de tableau.
  5. Convertissez le tableau en un ndarray NumPy pour le traitement.

Le code Python suivant montre comment convertir une ligne d’une feuille Excel en tableau NumPy ndarray :

import aspose.cells as cells
import numpy as np

# Charger le fichier Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells

max_col = sheet_cells.max_data_column + 1

# choisissez une ligne (par exemple, la dernière ligne de données)
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)

Le NumPy ndarray résultant sera un tableau à une dimension contenant toutes les valeurs de la ligne sélectionnée.

['Detroit' 'Central' 3074]

Convertir une colonne d’Excel en NumPy

Dans certains cas, vous n’aurez peut-être besoin que des valeurs d’une seule colonne d’une feuille Excel. Aspose.Cells vous permet d’exporter une colonne facilement et de la transformer en un tableau NumPy ndarray.

  1. Charger le classeur Excel.
  2. Sélectionnez la feuille de calcul cible.
  3. Choisissez l’index de colonne à exporter.
  4. Exportez les valeurs de la colonne.
  5. Convertissez les valeurs en un tableau NumPy ndarray.

Le code Python suivant montre comment convertir une colonne d’une feuille Excel en ndarray de NumPy :

import aspose.cells as cells
import numpy as np

# Charger le fichier 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

# choisir une colonne (par exemple, la dernière colonne de données)
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)

Le tableau NumPy ndarray résultant sera un tableau unidimensionnel contenant toutes les valeurs de la colonne sélectionnée.

['Store' 3055 3036 3074]

Conseils pour travailler avec Aspose.Cells et NumPy

  • Considérations mémoire : convertir des classeurs très volumineux en tableaux NumPy peut consommer une quantité significative de mémoire. Traitez les feuilles de calcul individuellement ou lisez des plages spécifiques si possible.

  • Types de données : Si votre feuille de calcul contient des types mixtes (chaînes, nombres, dates), spécifiez dtype=object lors de la conversion de listes en tableaux NumPy. Pour des données numériques homogènes, vous pouvez laisser NumPy inférer le type.

  • Valeurs manquantes : Aspose.Cells renvoie None pour les cellules vides. Dans les exemples ci-dessus, nous les avons remplacées par des chaînes vides. Vous pouvez également les substituer par np.nan ou une autre valeur sentinelle en fonction de votre cas d’utilisation.

Obtenez une licence gratuite

Voulez-vous explorer la pleine puissance d’Aspose.Cells for Python ? Vous pouvez demander une licence temporaire gratuite .Cela vous permet de tester toutes les fonctionnalités sans limitations ni filigranes d’évaluation.

Avec un permis temporaire, vous pouvez :

  • Travailler avec de grands fichiers Excel.
  • Apply advanced formatting and styling.
  • Effectuer des conversions (par exemple, Excel en PDF, NumPy, et plus).

C’est le meilleur moyen d’évaluer la performance et la compatibilité avec vos projets avant de prendre une décision d’achat.

Ressources utiles

Voici quelques ressources précieuses pour vous aider à commencer avec Aspose.Cells for Python via .NET :

Conclusion

Aspose.Cells for Python via .NET simplifie la conversion des données Excel en tableaux NumPy. Que vous ayez besoin du classeur entier, d’une seule feuille, d’une plage spécifique, d’un tableau, d’une ligne ou d’une colonne, la bibliothèque fournit des méthodes claires pour itérer à travers les cellules et construire des listes que NumPy peut utiliser. En combinant la capacité d’Aspose.Cells à lire de nombreux formats de tableurs avec la puissance numérique de NumPy, vous pouvez intégrer les données Excel de manière transparente dans vos pipelines de données Python.

Si vous avez des questions, n’hésitez pas à demander sur notre forum de support gratuit, et nous serons heureux de vous aider.

Voir aussi