Práce s daty v Excelu v Pythonu je běžná. Často zahrnuje přesun dat z Excelu do formátu, který lze efektivně manipulovat. Převedení dat z Excelu do formátu připraveného k analýze může být složité. V tomto blogovém příspěvku se naučíte, jak převést Excel na NumPy pole za pouhé pár řádků kódu.

Proč NumPy?

NumPy (Numerical Python) je open-source knihovna Pythonu. Je páteří datové vědy a strojového učení v Pythonu. NumPy poskytuje rychlé operace s poli a efektivní numerické výpočty. Bezproblémově funguje s pandas, TensorFlow a scikit-learn. Knihovna podporuje vícerozměrná pole, matice, lineární algebru a Fourierovy transformace. Pole používají souvislou paměť, což je činí rychlejšími než Python seznamy. Tato rychlost činí z NumPy základní nástroj pro vědecké výpočty a analýzu dat.

Excel se široce používá pro ukládání datových sad, ale není optimalizován pro pracovní postupy v Pythonu. Tradiční metody konverze často vyžadují další knihovny, více kroků a ruční analýzu. Aspose.Cells vám umožňuje exportovat data z Excel, TSV, CSV a JSON formátů přímo do polí NumPy. To propojuje tabulky s numerickými nástroji Pythonu.

What is Aspose.Cells for Python?

Aspose.Cells je nejlepší Excel knihovna pro Python vývojáře. Umožňuje číst, vytvářet a manipulovat se sešity bez spoléhání se na Microsoft Excel. Varianta Python přes .NET zabudovává .NET verzi Aspose.Cells a zpřístupňuje ji Pythonu. Aspose.Cells zjednodušuje proces převodu Excelu na NumPy. Umožňuje vám exportovat celý sešit, list, oblast, řádek, sloupec nebo dokonce objekt seznamu přímo do NumPy ndarrays. To znamená, že můžete přejít od surových Excel souborů k čistým, připraveným datům pro analýzu nebo strojové učení s minimálním úsilím.

Můžete to nainstalovat z PyPI:

pip install aspose‑cells‑python

Jakmile je nainstalováno, importujte knihovnu spolu s NumPy:

import aspose.cells as cells
import numpy as np

Jak převést Excel sešit na NumPy

Pracovní sešit může obsahovat více listů. Můžete exportovat celý Excel pracovní sešit do NumPy ndarray najednou. To je užitečné, když chcete zpracovávat data ze všech listů přímo v Pythonu.

Postupujte podle následujících kroků, jak převést Excel sešit na NumPy ndarray:

  1. Načtěte Excelovou pracovní knihu pomocí třídy Workbook.
  2. Získejte přístup ke všem pracovním listům z pracovního sešitu.
  3. Projděte každou pracovní tabulku a přečtěte si její používané řádky a sloupce.
  4. Extract cell values row by row.
  5. Uložte data jednotlivých listů do seznamu seznamů.
  6. Převeďte shromážděná data na pole NumPy pomocí np.asarray().

Zde je zjednodušený skript v Pythonu, který exportuje vzorovou pracovní knihu:

import aspose.cells as cells
import numpy as np

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

# připravte prázdný seznam pro uložení dat listu
sheets_data = []

# procházet pracovní listy
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)

# převést na ndarray s dtype=object pro zachování řetězců
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)
Jak převést Excel pracovní sešit na NumPy

Jak převést Excel pracovní sešit na NumPy

Tento skript nahrazuje jakékoli prázdné buňky prázdnými řetězci a kombinuje všechny listy do jednoho pole NumPy. Konečné excelarray je třírozměrné: první úroveň představuje listy, druhá představuje řádky a třetí představuje sloupce.

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

Převod jednoho pracovního listu na NumPy

Někdy můžete chtít pracovat s jednotlivým pracovním listem místo celého sešitu. Můžete přímo extrahovat hodnoty buněk z jednoho pracovního listu a převést je na NumPy ndarray podle následujících kroků:

  1. Načtěte soubor Excel pomocí třídy Workbook.
  2. Přistupte k cílovému pracovního listu podle jeho indexu.
  3. Získejte maximálně používané řádky a sloupce.
  4. Projdi každým řádkem a sloupcem a sbírej hodnoty buněk.
  5. Uložte extrahovaná data do seznamu.
  6. Převěďte seznam na NumPy ndarray pomocí np.asarray().

Zde je skript Python, který exportuje jeden pracovní list:

import aspose.cells as cells
import numpy as np

# načíst sešit
workbook = cells.Workbook("sample_data.xlsx")

# přístup k prvnímu listu
sheet = workbook.worksheets[0]

# získat maximální počet řádků a sloupců s daty
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)

Tohoto vytváří 2D ndarray, kde řádky odpovídají řádkům Excelu a sloupce odpovídají sloupcům Excelu.

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

Jak převést rozsah Excelu na NumPy

V některých případech potřebujete pouze konkrétní rozsah buněk. Aspose.Cells vám umožňuje definovat rozsah a přímo jej exportovat do ndarray NumPy.

Postupujte podle následujících kroků:

  1. Načtěte pracovní sešit pomocí třídy Workbook.
  2. Vyberte cílový pracovní list.
  3. Definujte rozsah pomocí metody worksheet.cells.createrange().
  4. Procházejte řádky a sloupce oblasti a extrahujte hodnoty.
  5. Převést hodnoty na NumPy ndarray pomocí np.asarray().

Následující příklad kódu ukazuje, jak převést rozsah buněk z Excelu na NumPy ndarray:

import aspose.cells as cells
import numpy as np

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

# vyberte první pracovní sešit
sheet = workbook.worksheets.get(0)

# definujte rozsah (B1 až 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)

# převést na numpy ndarray
range_array = np.asarray(range_data, dtype=object)
print(range_array)

Pokud vybraný rozsah zahrnuje dva sloupce a tři řádky, výsledné pole bude 3×2, například:

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

Převod tabulky Excel (ListObject) na NumPy

Excel tabulka je strukturovaný rozsah dat s hlavičkami a řádky. V Aspose.Cells je to reprezentováno jako ListObject. Můžete snadno exportovat obsah Excel tabulky do NumPy ndarray pro další zpracování v Pythonu.

  1. Načtěte pracovní sešit a vyberte list.
  2. Přistupte k objektu ListObject (tabulka Excel) z listu.
  3. Exportujte data tabulky do dvourozměrného pole.
  4. Převést pole na NumPy ndarray.
  5. Použijte ndarray pro pracovní postupy v oblasti vědy o datech nebo strojového učení.

Následující příklad kódu ukazuje, jak exportovat tabulku Excel (ListObject) do NumPy:

import aspose.cells as cells
import numpy as np

# Načíst soubor Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)

# Vytvořte tabulku pokrývající A1:C4 s hlavičkami
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)

Výsledné NumPy ndarray bude obsahovat řádky a sloupce Excelové tabulky, včetně záhlaví, pokud jsou součástí oblasti dat.

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

Jak převést řádek Excelu na NumPy

Někdy potřebujete pouze data z jednoho řádku v Excelu. Aspose.Cells usnadňuje extrakci jednoho řádku a jeho přímé načtení do pole NumPy ndarray.

  1. Načtěte sešit Excelu.
  2. Vyberte pracovní list.
  3. Zvolte index řádku, který chcete exportovat.
  4. Exportujte hodnoty řádků jako pole.
  5. Převeďte pole na NumPy ndarray pro zpracování.

Následující kód Python ukazuje, jak převést řádek z Excelové tabulky na NumPy ndarray:

import aspose.cells as cells
import numpy as np

# Načíst soubor Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells

max_col = sheet_cells.max_data_column + 1

# vyberte řádek (např. poslední datový řádek)
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)

Výsledný NumPy ndarray bude jednorozměrné pole obsahující všechny hodnoty z vybraného řádku.

['Detroit' 'Central' 3074]

Převod sloupce Excel na NumPy

V některých případech můžete potřebovat pouze hodnoty z jednoho sloupce Excelového listu. Aspose.Cells vám umožňuje snadno exportovat sloupec a transformovat ho na NumPy ndarray.

  1. Načtěte sešit Excelu.
  2. Vyberte cílový pracovní list.
  3. Vyberte index sloupce k exportu.
  4. Exportujte hodnoty sloupců.
  5. Převeďte hodnoty do pole NumPy ndarray.

Následující kód v Pythonu ukazuje, jak převést sloupec z Excelové tabulky na NumPy ndarray:

import aspose.cells as cells
import numpy as np

# Načíst soubor 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

# vyberte sloupec (např. poslední datový sloupec)
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)

Výsledný NumPy ndarray bude jednorozměrné pole obsahující všechny hodnoty z vybraného sloupce.

['Store' 3055 3036 3074]

Tipy pro práci s Aspose.Cells a NumPy

  • Zvažování paměti: Převod velmi velkých sešitů na pole NumPy může spotřebovat značné množství paměti. Zpracovávejte listy jednotlivě nebo, pokud je to možné, čtěte konkrétní rozsahy.

  • Datové typy: Pokud váš tabulkový procesor obsahuje smíšené typy (řetězce, čísla, data), specifikujte dtype=object při konverzi seznamů na pole NumPy. Pro homogenní numerické údaje můžete nechat NumPy odvodit typ.

  • Chybějící hodnoty: Aspose.Cells vrací None pro prázdné buňky. V příkladech výše jsme je nahradili prázdnými řetězci. Můžete také nahradit np.nan nebo jinou sentinelovou hodnotou v závislosti na vašem použití.

Získejte licenci zdarma

Chcete prozkoumat plnou sílu Aspose.Cells for Python? Můžete požádat o bezplatnou dočasnou licenci.To vám umožní testovat všechny funkce bez omezení nebo hodnotících vodotisků.

S dočasnou licencí můžete:

  • Pracujte s velkými soubory Excel.
  • Apply advanced formatting and styling.
  • Provádějte konverze (např. Excel na PDF, NumPy a další).

Je to nejlepší způsob, jak vyhodnotit výkon a kompatibilitu s vašimi projekty před učiněním rozhodnutí o nákupu.

Užitečné zdroje

Zde jsou některé cenné zdroje, které vám pomohou začít s Aspose.Cells for Python přes .NET:

Závěr

Aspose.Cells for Python prostřednictvím .NET zjednodušuje převod dat Excelu na pole NumPy. Ať už potřebujete celý sešit, jediný list, konkrétní rozsah, tabulku, řádek nebo sloupec, knihovna poskytuje jasné metody pro iteraci přes buňky a vytváření seznamů, které NumPy může zpracovat. Kombinováním schopnosti Aspose.Cells číst mnoho formátů tabulek s numerickou silou NumPy můžete bezproblémově integrovat data z Excelu do vašich datových toků v Pythonu.

Pokud máte jakékoliv dotazy, neváhejte se ptát na našem free support forum a rádi vám pomůžeme.

Viz také