NumPy je jedna z nejpopulárnějších knihoven v Pythonu. Pohání vědecká data, strojové učení a numerickou analýzu. Mnoho vývojářů používá pole NumPy (ndarray) k rychlému zpracování velkých datových sad.

V našem předchozím příspěvku na blogu jsme vysvětlili, jak převést soubory Excel na pole NumPy. Tento pracovní postup je užitečný, když potřebujete přenést externí data do Pythonu pro analýzu. Ale co když chcete opačný postup? Mnohokrát je třeba exportovat vaše výsledky z Pythonu z NumPy do Excelu pro reportování a sdílení. Excel je široce používán v podnikání, školách a organizacích, což z něj dělá ideální formát pro spolupráci.

V této příručce vám ukážeme krok za krokem, jak převést NumPy na Excel pomocí Pythonu a Aspose.Cells for Python prostřednictvím .NET.

Proč převádět NumPy na Excel?

NumPy je perfektní pro výpočty a analýzy uvnitř Pythonu. Ale často potřebujeme sdílet výsledky s ostatními. Většina obchodních uživatelů preferuje Excel, protože je známý a snadno se používá.

Zde jsou některé běžné důvody, proč můžete potřebovat exportovat NumPy do Excelu:

  • Data reporting: Convert processed data into Excel files for managers or clients.
  • Spolupráce: Sdílejte výsledky s členy týmu, kteří nepoužívají Python.
  • Business analysis: Combine NumPy results with existing Excel reports and dashboards.
  • Vizualizace: Použijte grafy Excel a kontingenční tabulky, aby byly údaje smysluplnější.

Excel je univerzální formát. Překonává mezeru mezi vývojáři v Pythonu a netechnickými uživateli. Exportováním polí NumPy do Excelu zpřístupňujete, zpřehledňujete a usnadňujete použití vašich dat.

Python NumPy Excel knihovna

Aspose.Cells for Python je mocná knihovna pro tabulky. Umožňuje vám vytvářet, upravovat a zpracovávat soubory Excel bez nutnosti instalace Microsoft Excel. Je to nejlepší knihovna Excel pro Python, navržená pro vývojáře, kteří potřebují plnou kontrolu nad dokumenty Excel. Můžete:

  • Načtěte a uložte soubory Excel v různých formátech.
  • Pracujte s pracovními listy, tabulkami, rozsahy a grafy.
  • Import and export data from Python objects, including NumPy arrays.
  • Zpracovávejte velké datové sady s vysokou rychlostí a přesností.

Nejlepší na tom je, že Aspose.Cells funguje nezávisle. Nebudete potřebovat Excel ani žádný externí software. Bez problémů běží ve vašich Python aplikacích a dobře se integruje se vědeckými pracovními postupy. To z něj dělá spolehlivé řešení pro převod dat NumPy do souborů Excel.

Convert NumPy to Excel in Python

Převedení pole NumPy na Excel pomocí Aspose.Cells je jednoduché. Postupujte podle těchto rychlých kroků:

Krok 1: Nainstalujte Aspose.Cells for Python přes .NET

Nainstalujte balíček pomocí pip:

pip install aspose-cells-python

Krok 2: Importovat potřebné knihovny

Ve svém Python skriptu importujte NumPy a Aspose.Cells:

import numpy as np
import aspose.cells as cells

Krok 3: Vytvořte vzorové pole NumPy

Pro testování vytvořte jednoduché 2D pole:

data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

Krok 4: Definujte vlastní funkci – insertnumpyarray

Hodnoty NumPy často přicházejí jako typy jako numpy.int64, numpy.float32 nebo numpy.bool. Tyto je potřeba převést na nativní typy Pythonu před zápisem do buněk v Excelu.

Pomocná funkce níže provádí tuto konverzi a přímo vkládá pole do pracovního listu, počínaje daným řádkem a sloupcem:

# Vlastní funkce pro vložení pole NumPy do pracovního sešitu
def insert_numpy_array(sheet, ndarray, start_row=0, start_col=0):
    rows, cols = ndarray.shape
   for r in range(rows):
       for c in range(cols):
            value = ndarray[r, c]
            # Převod typů NumPy na nativní typy Pythonu
            if isinstance(value, (np.integer,)):
                value = int(value)
            elif isinstance(value, (np.floating,)):
                value = float(value)
            elif isinstance(value, (np.bool_,)):
                value = bool(value)
            elif isinstance(value, (np.str_, np.str_)):
                value = str(value)
            sheet.cells.get(start_row + r, start_col + c).put_value(value)
            

V následujících sekcích předvedeme, jak vložit data NumPy do sešitu, listu, objektu seznamu, oblasti a pojmenované oblasti. Příklad kódu v následujících sekcích používá pomocnou funkci definovanou v části Krok 4: Vlastní funkce.

Jak převést NumPy ndarray na Excel workbook

Můžete vytvořit kompletní Excel sešit z pole NumPy za pouhých několik řádků. Tato metoda je ideální, když chcete exportovat výsledky analýzy dat, výstupy strojového učení nebo tabulkové datové sady do profesionálního Excel souboru, který může být sdílen nebo dále zpracován.

Postupujte podle následujících kroků pro převod NumPy ndarray na sešit Excel:

  1. Vytvořte 2D pole NumPy se svými daty.
  2. Inicializujte novou prázdnou sešitu pomocí třídy Workbook.
  3. Přidejte nový list do sešitu pomocí metody worksheets.add().
  4. Získejte přístup k nové pracovnímu listu podle jeho indexu.
  5. Procházejte pole NumPy a vkládejte hodnoty do buněk pracovního listu.
  6. Uložte sešit jako soubor Excel.

Následující příklad kódu ukazuje, jak převést NumPy ndarray na Excel pracovní sešit.

# Vytvořte pole NumPy
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# Převést NumPy pole na Excelovou pracovní knihu
workbook = cells.Workbook()

# Přidat nový list
new_sheet_index = workbook.worksheets.add()
worksheet = workbook.worksheets.get(new_sheet_index)

# Vložte pole do nového listu počínaje buňkou A1
insert_numpy_array(worksheet, data)

# Uložte sešit jako soubor Excel.
workbook.save("numpy_to_workbook.xlsx")
Jak převést NumPy na Excel Workbook

Jak převést NumPy na Excel Workbook

Vložení NumPy ndarray do pracovního listu

Někdy už máte sešit a chcete pouze vložit data NumPy do jednoho listu.

Postupujte podle níže uvedených kroků pro převod NumPy ndarray na Worksheet:

  1. Vytvořte 2D pole NumPy se svými daty.
  2. Načtěte existující Excel soubor pomocí třídy Workbook.
  3. Vyberte pracovní list, kam chcete umístit data.
  4. Procházejte pole NumPy a vkládejte hodnoty do buněk pracovního listu.
  5. Uložte sešit jako soubor Excel.

Následující příklad kódu ukazuje, jak vložit NumPy ndarray do konkrétního pracovního listu v sešitě Excel:

# Vytvořte pole NumPy
data = np.array([['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036],
                 ['Detroit', 'Central', 3074]])

# Převést pole NumPy na sešit Excel
workbook = cells.Workbook("numpy_to_workbook.xlsx")

# Přístup k prvnímu pracovnímu listu
sheet = workbook.worksheets.get(0)

# Vložení pole NumPy do pracovního listu počínaje A1
insert_numpy_array(sheet, data, 0, 0)

# Uložte pracovní sešit jako soubor Excel.
workbook.save("numpy_to_worksheet.xlsx")
Jak převést NumPy ndarray na pracovní list

Jak převést NumPy ndarray na pracovní list

Jak převést NumPy ndarray na ListObject (tabulka Excelu)

Excel tabulky (také nazývané ListObjects) jsou silný způsob, jak organizovat a analyzovat data. S Aspose.Cells můžete přímo importovat pole NumPy do ListObject.

Prosím, postupujte podle níže uvedených kroků pro převod NumPy ndarray na ListObject (Tabulka Excel):

  1. Vytvořte 2D pole NumPy se vzorovými daty.
  2. Inicializujte nový sešit a přístupte k prvnímu listu.
  3. Vložte data NumPy do buněk pracovního listu pomocí pomocné funkce.
  4. Definujte počáteční a koncové řádky a sloupce na základě rozměrů pole.
  5. Přidejte ListObject do pracovního listu pomocí worksheet.listobjects.add().
  6. Přiřaďte zobrazovací jméno k ListObject.
  7. Uložte pracovní sešit jako soubor Excel.

Následující příklad kódu ukazuje, jak převést NumPy ndarray na excelovou tabulku:

# Vytvořte pole NumPy
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# Vytvořit nový sešit Excelu
workbook = cells.Workbook()
worksheet = workbook.worksheets.get(0)

# Vložte pole NumPy do pracovního listu počínaje buňkou A1
insert_numpy_array(worksheet, data)

# Definujte rozsah pro ListObject
start_row, start_col = 0, 0
end_row, end_col = data.shape[0] - 1, data.shape[1] - 1

# Přidejte ListObject (Excel tabulka) z dat NumPy
index = worksheet.list_objects.add(start_row, start_col, end_row, end_col, True)
list_object = worksheet.list_objects[index]

# Nastavit název zobrazení pro tabulku
list_object.display_name = "NumPyTable"

# Uložte pracovní knihu
workbook.save("numpy_to_listobject.xlsx")
Jak převést NumPy ndarray na ListObject (Excel tabulka)

Jak převést NumPy ndarray na ListObject (Excel tabulka)

Převést NumPy ndarray na Range

Někdy můžete chtít umístit pole NumPy do konkrétního rozsahu buněk. Tato metoda je ideální, když potřebujete přesné umístění dat uvnitř pracovních listů, například vyplnění předdefinované oblasti tabulky nebo exportování výsledků analýzy do vybraného bloku buněk.

Následujte níže uvedené kroky pro převod NumPy ndarray na Range:

  1. Vytvořte 2D NumPy ndarray.
  2. Vytvořte nový sešit nebo otevřete existující.
  3. Vyberte cílový pracovní list.
  4. Procházejte hodnoty ndarray a vložte je do odpovídajících buněk Excelu.
  5. Vytvořte objekt Range pomocí cells.createrange(startcell, endcell).
  6. Exportujte pracovní list s vyplněným rozsahem do souboru Excel.

Následující příklad kódu ukazuje, jak vložit NumPy ndarray do rozsahu Excelu:

import numpy as np
from datetime import datetime
from aspose.cells import Workbook, CellsHelper

# Nástroj pro bezpečné umístění hodnot NumPy do buněk
def put_cell_value(cells, raw_value, row, col):
    cell = cells.get(row, col)
    if isinstance(raw_value, (np.bool_,)):
        value = bool(raw_value)
    elif isinstance(raw_value, (np.integer,)):
        value = int(raw_value)
    elif isinstance(raw_value, (np.floating,)):
        value = float(raw_value)
    elif isinstance(raw_value, (np.datetime64,)):
        # Převeďte numpy datetime64 → Python datetime → Excel-kompatibilní řetězec
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = raw_value
    cell.put_value(value)

# Funkce pro vložení NumPy pole do buněk a vrácení rozsahu
def numpy_to_range(cells, data, start_row=0, start_col=0):
    rows, cols = data.shape
   for i in range(rows):
       for j in range(cols):
            put_cell_value(cells, data[i, j], start_row + i, start_col + j)

    # Definujte rozsah na základě začínací/konečné buňky
    start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
    end_cell = CellsHelper.cell_index_to_name(start_row + rows - 1, start_col + cols - 1)
    return cells.create_range(start_cell, end_cell)

# Vytvořte ukázkové pole NumPy
data = np.array([
    ['City', 'Region', 'Store', 'Date'],
    ['Chicago', 'Central', 3055, np.datetime64('2025-01-15')],
    ['New York', 'East', 3036, np.datetime64('2025-02-10')],
    ['Detroit', 'Central', 3074, np.datetime64('2025-03-05')]
])

# Vytvořte novou pracovní knihu a získejte první list.
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# Vložte ndarray do pracovního listu jako Rozsah
range_obj = numpy_to_range(cells, data, 0, 0)

print("Row count:", range_obj.row_count)
print("Column count:", range_obj.column_count)

# Uložte pracovní sešit
workbook.save("numpy_to_range.xlsx")
Jak převést NumPy ndarray na rozsah

Jak převést NumPy ndarray na rozsah

Jak převést NumPy ndarray na název (pojmenovaný rozsah)

Někdy můžete chtít přiřadit smysluplný název konkrétnímu rozsahu dat v Excelu. To usnadňuje odkazování na data ve vzorcích, grafech nebo v jiných pracovních listech. V této sekci vám ukážeme, jak převést NumPy na pojmenovaný rozsah Excelu pomocí Pythonu a Aspose.Cells. Vytvořením pojmenovaného rozsahu můžete efektivněji pracovat se svými daty NumPy v Excelu.

Postupujte podle níže uvedených kroků pro převod NumPy ndarray na pojmenovaný rozsah v Excelu pomocí Aspose.Cells.

  1. Vytvořte pole NumPy v Pythonu.
  2. Vytvořte novou pracovní knihu a získáte přístup k cílovému listu.
  3. Projděte pole a vložte každou hodnotu do pracovního listu.
  4. Definujte rozsah pokrývající importovaná data.
  5. Přiřaďte názvem tuto oblast.
  6. Uložte sešit jako soubor Excel.

Následující příklad kódu ukazuje, jak vložit NumPy ndarray do pojmenovaného rozsahu v Excelu:

import numpy as np
import aspose.cells
from aspose.cells import Workbook, CellsHelper

# Funkce pomocná pro vložení dat NumPy do buněk pracovního listu
def put_cell_value(cells, raw_value, row, column):
    if isinstance(raw_value, (np.bool_)):
        value = bool(raw_value)
    elif isinstance(raw_value, (np.integer)):
        value = int(raw_value)
    elif isinstance(raw_value, (np.floating)):
        value = float(raw_value)
    elif isinstance(raw_value, (np.datetime64)):
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = str(raw_value)
    cells.get(row, column).put_value(value)

def insert_ndarray_into_cells(cells, data, start_row, start_col):
    row_count = data.shape[0]
    col_count = data.shape[1]

   for r in range(row_count):
       for c in range(col_count):
            put_cell_value(cells, data[r][c], start_row + r, start_col + c)

    # Vrátit pokrytou plochu buněk
    end_row = start_row + row_count - 1
    end_col = start_col + col_count - 1
    return (start_row, start_col, end_row, end_col)

# ---------------------------
# Main Code
# ---------------------------

# Vytvořte vzorové pole NumPy
data = np.array([
    ['Product', 'Region', 'Sales'],
    ['Laptop', 'East', 1200],
    ['Phone', 'West', 950],
    ['Tablet', 'North', 740]
])

# Vytvořte nový sešit
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# Vložte ndarray do buněk počínaje (0,0)
(start_row, start_col, end_row, end_col) = insert_ndarray_into_cells(cells, data, 0, 0)

# Získejte odkazy na buňky v Excelu
start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
end_cell = CellsHelper.cell_index_to_name(end_row, end_col)

# Vytvořte pojmenovaný rozsah pro tento ndarray
idx = workbook.worksheets.names.add("SalesData")  # returns index
named_range = workbook.worksheets.names[idx]  # get the Name object
named_range.refers_to = f"={worksheet.name}!{start_cell}:{end_cell}"

# Uložte sešit
workbook.save("numpy_to_named_range.xlsx")
Jak převést NumPy ndarray na název (pojmenovaný rozsah)

Jak převést NumPy ndarray na název (pojmenovaný rozsah)

Začněte s Aspose.Cells for Python

Nyní jste viděli, jak snadné je převést NumPy pole do Excelu pomocí Aspose.Cells. Knihovna vám dává plnou kontrolu nad sešity, listy, tabulkami, intervaly a pojmenovanými intervaly.

Zde jsou některé užitečné odkazy, které vám pomohou prohloubit vaše porozumění:

Získejte bezplatnou dočasnou licenci a začněte používat Aspose.Cells již dnes, aby byly vaše data v Pythonu plně kompatibilní s pracovními postupy v Excelu.

NumPy do Excel: Často kladené otázky

Q1: Je potřeba mít nainstalovaný Microsoft Excel pro použití Aspose.Cells?

Ne. Aspose.Cells funguje nezávisle. Nemusíte mít nainstalovaný Excel ani žádný jiný software.

Q2: Může Aspose.Cells zpracovávat velké NumPy pole?

Ano. Knihovna je optimalizována pro velké datasety a i s velkými poli funguje dobře.

Q3: Které formáty Excelu jsou podporovány?

Můžete uložit svá data NumPy do formátů tabulek XLSX, XLS, CSV, ODS a mnoha dalších.

Q4: Mohu formátovat buňky Excelu po exportu dat z NumPy?

Ano. Můžete aplikovat styly, formáty čísel, vzorce a dokonce vytvářet grafy nebo kontingenční tabulky.

Q5: Je k dispozici bezplatná verze Aspose.Cells?

Ano. Můžete si stáhnout bezplatnou zkušební verzi nebo požádat o dočasnou licenci pro testování.

Závěr

NumPy je základním nástrojem pro datovou vědu a numerickou analýzu v Pythonu, ale reportování ve skutečném světě často vyžaduje Excel. S Aspose.Cells for Python prostřednictvím .NET se převod NumPy na Excel stává bezproblémovým a flexibilním. V této příručce jsme prozkoumali různé metody: exportování NumPy polí do kompletního sešitu, vkládání dat do pracovní listu, formátování jako ListObject (tabulka Excel), mapování polí do oblasti a jejich přiřazení k pojmenované oblasti. Každý přístup slouží jedinečnému účelu. Kombinací síly NumPy s flexibilitou Aspose.Cells můžete efektivně přejít od analýzy v Pythonu k profesionálním Excelovým reportům, což zajistí, že vaše data budou dostupná a připravená na prezentaci.

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

See Also