Die Arbeit mit Excel-Daten in Python ist üblich. Sie umfasst oft das Übertragen von Daten aus Excel in ein Format, das effizient manipuliert werden kann. Die Umwandlung von Excel-Daten in ein format, das für die Analyse bereit ist, kann knifflig sein. In diesem Blogbeitrag erfahren Sie, wie Sie Excel in NumPy-Arrays mit nur wenigen Codezeilen umwandeln können.

Warum NumPy?

NumPy (Numerical Python) ist eine Open-Source- Python Bibliothek. Sie ist das Rückgrat der Datenwissenschaft und des maschinellen Lernens in Python. NumPy bietet schnelle Array-Operationen und effizientes numerisches Rechnen. Es funktioniert reibungslos mit pandas, TensorFlow und scikit-learn. Die Bibliothek unterstützt mehrdimensionale Arrays, Matrizen, lineare Algebra und Fourier-Transformationen. Arrays verwenden zusammenhängenden Speicher, was sie schneller als Python-Listen macht. Diese Geschwindigkeit macht NumPy zu einem grundlegenden Werkzeug für wissenschaftliches Rechnen und Datenanalyse.

Excel wird häufig zur Speicherung von Datensätzen verwendet, ist jedoch nicht für Python-Workflows optimiert. Traditionelle Konvertierungsmethoden erfordern oft zusätzliche Bibliotheken, mehrere Schritte und manuelles Parsen. Aspose.Cells ermöglicht es Ihnen, Daten aus Excel, TSV, CSV und JSON -Formaten direkt in NumPy-Arrays zu exportieren. Dies verbindet Tabellenkalkulationen mit den numerischen Werkzeugen von Python.

What is Aspose.Cells for Python?

Aspose.Cells ist die beste Excel-Bibliothek für Python Entwickler. Sie ermöglicht das Lesen, Erstellen und Bearbeiten von Tabellenkalkulationen, ohne auf Microsoft Excel angewiesen zu sein. Die Python-Über.NET-Variante bettet die .NET-Version von Aspose.Cells ein und stellt sie Python zur Verfügung. Aspose.Cells vereinfacht den Prozess der Konvertierung von Excel in NumPy. Es ermöglicht Ihnen, eine gesamte Arbeitsmappe, ein Arbeitsblatt, einen Bereich, eine Zeile, eine Spalte oder sogar ein Listenobjekt direkt in NumPy ndarrays zu exportieren. Das bedeutet, dass Sie mit minimalem Aufwand von rohen Excel Dateien zu sauberen, einsatzbereiten Daten für Analysen oder maschinelles Lernen wechseln können.

Sie können es von PyPI installieren:

pip install aspose‑cells‑python

Einmal installiert, importieren Sie die Bibliothek zusammen mit NumPy:

import aspose.cells as cells
import numpy as np

Wie man ein Excel-Arbeitsbuch in NumPy konvertiert

Eine Arbeitsmappe kann mehrere Arbeitsblätter enthalten. Sie können eine gesamte Excel-Arbeitsmappe in einem Durchgang in ein NumPy ndarray exportieren. Das ist praktisch, wenn Sie Daten aus allen Blättern direkt in Python verarbeiten möchten.

Befolgen Sie die folgenden Schritte, um eine Excel-Arbeitsmappe in ein NumPy ndarray zu konvertieren:

  1. Laden Sie die Excel-Arbeitsmappe mit der Workbook Klasse.
  2. Greifen Sie auf alle Arbeitsblätter der Arbeitsmappe zu.
  3. Durchlaufen Sie jedes Arbeitsblatt, um die verwendeten Zeilen und Spalten zu lesen.
  4. Zellenwerte zeilenweise extrahieren.
  5. Speichern Sie die Daten jedes Blattes in einer Liste von Listen.
  6. Konvertiere die gesammelten Daten in ein NumPy ndarray mit np.asarray().

Hier ist ein vereinfachtes Python-Skript, das eine Beispieldatei exportiert:

import aspose.cells as cells
import numpy as np

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

# Bereite eine leere Liste vor, um die Blattdaten zu halten.
sheets_data = []

# loop through worksheets
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)

# in inndarat erweitert ndarray mit dtype=object, um Zeichenfolgen zu speichern
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)
How to Convert Excel Workbook to NumPy

Wie man eine Excel-Arbeitsmappe in NumPy konvertiert

Dieses Skript ersetzt alle leeren Zellen durch leere Strings und kombiniert alle Arbeitsblätter in einem NumPy-Array. Das endgültige excelarray ist dreidimensional: Die erste Ebene stellt die Blätter dar, die zweite die Zeilen und die dritte die Spalten.

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

Ein einzelnes Arbeitsblatt in NumPy konvertieren

Manchmal möchten Sie möglicherweise mit einem einzelnen Arbeitsblatt anstelle eines gesamten Arbeitsbuchs arbeiten. Sie können die Zellwerte eines Arbeitsblatts direkt extrahieren und in ein NumPy ndarray umwandeln, indem Sie die folgenden Schritte ausführen:

  1. Laden Sie die Excel-Datei mit der Workbook Klasse.
  2. Greifen Sie auf das Zielarbeitsblatt über seinen Index zu.
  3. Holen Sie sich die maximal verwendeten Zeilen und Spalten.
  4. Durchlaufen Sie jede Zeile und jede Spalte, um die Zellwerte zu sammeln.
  5. Speichern Sie die extrahierten Daten in einer Liste.
  6. Konvertieren Sie die Liste in ein NumPy ndarray mit np.asarray().

Hier ist das Python-Skript, das ein einzelnes Arbeitsblatt exportiert:

import aspose.cells as cells
import numpy as np

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

# Greifen Sie auf das erste Arbeitsblatt zu.
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)

# convert to numpy ndarray
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)

Dies erstellt ein 2D-ndarray, bei dem Zeilen den Excel-Zeilen und Spalten den Excel-Spalten zugeordnet sind.

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

Wie man einen Bereich von Excel in NumPy konvertiert

In bestimmten Fällen benötigen Sie nur einen bestimmten Bereich von Zellen. Aspose.Cells ermöglicht es Ihnen, einen Bereich zu definieren und ihn direkt in ein NumPy ndarray zu exportieren.

Befolge die Schritte unten:

  1. Laden Sie die Arbeitsmappe mit der Workbook Klasse.
  2. Wählen Sie das Zielarbeitsblatt aus.
  3. Definieren Sie einen Bereich mit der Methode worksheet.cells.createrange().
  4. Durchlaufen Sie die Zeilen und Spalten des Bereichs, um Werte zu extrahieren.
  5. Wandle die Werte in ein NumPy ndarray mit np.asarray() um.

Der folgende Codebeispiel zeigt, wie man einen Bereich von Zellen aus Excel in ein NumPy ndarray konvertiert:

import aspose.cells as cells
import numpy as np

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

# wählen Sie das erste Arbeitsblatt aus
sheet = workbook.worksheets.get(0)

# definieren Sie einen Bereich (B1 bis 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)

# convert to numpy ndarray
range_array = np.asarray(range_data, dtype=object)
print(range_array)

Wenn der ausgewählte Bereich zwei Spalten und drei Zeilen umfasst, wird das resultierende Array 3×2 sein, wie folgt:

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

Eine Excel-Tabelle (ListObject) in NumPy umwandeln

Eine Excel-Tabelle ist ein strukturiertes Datenfeld mit Kopfzeilen und Zeilen. In Aspose.Cells wird dies als ListObject dargestellt. Sie können die Inhalte einer Excel-Tabelle einfach in ein NumPy ndarray exportieren, um sie in Python weiter zu verarbeiten.

  1. Laden Sie die Arbeitsmappe und wählen Sie das Arbeitsblatt aus.
  2. Greifen Sie auf das ListObject (Excel-Tabelle) vom Arbeitsblatt zu.
  3. Exportieren Sie die Daten der Tabelle in ein zweidimensionales Array.
  4. Wandle das Array in ein NumPy ndarray um.
  5. Verwenden Sie das ndarray für Datenwissenschafts oder Maschinenlern-Workflows.

Der folgende Codebeispiel zeigt, wie man eine Excel-Tabelle (ListObject) nach NumPy exportiert:

import aspose.cells as cells
import numpy as np

# Lade Excel-Datei
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)

# Erstellen Sie eine Tabelle mit den Überschriften A1:C4.
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)

Das resultierende NumPy ndarray enthält die Zeilen und Spalten der Excel-Tabelle, einschließlich der Überschriften, wenn sie Teil des Datenbereichs sind.

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

Wie man eine Zeile von Excel in NumPy umwandelt

Manchmal benötigen Sie nur Daten aus einer einzelnen Zeile in Excel. Aspose.Cells macht es einfach, eine Zeile zu extrahieren und sie direkt in ein NumPy ndarray zu laden.

  1. Lade die Excel-Arbeitsmappe.
  2. Wählen Sie das Arbeitsblatt aus.
  3. Wählen Sie den Zeilenindex aus, den Sie exportieren möchten.
  4. Exportieren Sie die Zeilenwerte als Array.
  5. Wandle das Array in ein NumPy ndarray zur Verarbeitung um.

Der folgende Python-Code zeigt, wie man eine Zeile eines Excel-Blattes in ein NumPy ndarray umwandelt:

import aspose.cells as cells
import numpy as np

# Lade Excel-Datei
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells

max_col = sheet_cells.max_data_column + 1

# wählen Sie eine Zeile (z. B. letzte Datenzeile)
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)

Das resultierende NumPy ndarray wird ein eindimensionales Array sein, das alle Werte aus der ausgewählten Zeile enthält.

['Detroit' 'Central' 3074]

Convert a Column of Excel to NumPy

In einigen Fällen benötigen Sie möglicherweise nur Werte aus einer einzelnen Spalte eines Excel-Blatts. Aspose.Cells ermöglicht es Ihnen, eine Spalte einfach zu exportieren und sie in ein NumPy ndarray zu transformieren.

  1. Lade die Excel-Arbeitsmappe.
  2. Wählen Sie das Zielarbeitsblatt aus.
  3. Wählen Sie den Spaltenindex zum Exportieren aus.
  4. Exportieren Sie die Spaltenwerte.
  5. Wandle die Werte in ein NumPy ndarray um.

Der folgende Python-Code zeigt, wie man eine Spalte eines Excel-Blattes in ein NumPy ndarray konvertiert:

import aspose.cells as cells
import numpy as np

# Laden Sie die Excel-Datei
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

# wählen Sie eine Spalte (z. B. die letzte Datenspalte)
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)

Das resultierende NumPy ndarray wird ein eindimensionales Array sein, das alle Werte aus der ausgewählten Spalte enthält.

['Store' 3055 3036 3074]

Tipps zur Zusammenarbeit mit Aspose.Cells und NumPy

  • Speicherüberlegungen: Das Konvertieren von sehr großen Arbeitsmappen in NumPy-Arrays kann einen erheblichen Speicherverbrauch verursachen. Verarbeiten Sie Arbeitsblätter einzeln oder lesen Sie, wenn möglich, bestimmte Bereiche.

  • Datentypen: Wenn Ihre Tabelle gemischte Typen enthält (Strings, Zahlen, Daten), geben Sie dtype=object an, wenn Sie Listen in NumPy-Arrays umwandeln. Bei homogenen numerischen Daten können Sie NumPy den Typ bestimmen lassen.

  • Fehlende Werte: Aspose.Cells gibt None für leere Zellen zurück. In den oben genannten Beispielen haben wir sie durch leere Zeichenfolgen ersetzt. Sie können auch np.nan oder einen anderen Sentinelwert je nach Anwendungsfall substituieren.

Holen Sie sich eine kostenlose Lizenz

Möchten Sie die volle Leistungsfähigkeit von Aspose.Cells for Python erkunden? Sie können eine kostenlose temporäre Lizenz anfordern. Dies ermöglicht es Ihnen, alle Funktionen ohne Einschränkungen oder Evaluierungswasserzeichen zu testen.

Mit einer temporären Lizenz können Sie:

  • Arbeiten mit großen Excel Dateien.
  • Apply advanced formatting and styling.
  • Führen Sie Konvertierungen durch (z. B. Excel in PDF, NumPy und mehr).

Es ist der beste Weg, die Leistung und Kompatibilität mit Ihren Projekten zu bewerten, bevor Sie eine Kaufentscheidung treffen.

Nützliche Ressourcen

Hier sind einige wertvolle Ressourcen, die Ihnen helfen, mit Aspose.Cells for Python über .NET zu beginnen:

Conclusion

Aspose.Cells for Python über .NET vereinfacht die Umwandlung von Excel-Daten in NumPy-Arrays. Egal, ob Sie die gesamte Arbeitsmappe, ein einzelnes Blatt, einen bestimmten Bereich, eine Tabelle, eine Zeile oder eine Spalte benötigen, die Bibliothek bietet klare Methoden, um durch Zellen zu iterieren und Listen zu erstellen, die NumPy konsumieren kann. Durch die Kombination der Fähigkeit von Aspose.Cells, viele Tabellenformaten zu lesen, mit der numerischen Leistung von NumPy können Sie Excel-Daten nahtlos in Ihre Python-Datenpipelines integrieren.

Wenn Sie Fragen haben, können Sie sich gerne in unserem free support forum an uns wenden, und wir helfen Ihnen gerne weiter.

Siehe auch