Lavorare con i dati di Excel in Python è comune. Spesso comporta il trasferimento di dati da Excel a un formato che può essere manipolato in modo efficiente. Convertire i dati di Excel in un formato pronto per l’analisi può essere complicato. In questo post del blog, imparerai come convertire Excel in array NumPy in poche righe di codice.

Why NumPy?

NumPy (Numerical Python) è una libreria Python open-source. È la spina dorsale della scienza dei dati e dell’apprendimento automatico in Python. NumPy fornisce operazioni su array veloci e un calcolo numerico efficiente. Funziona perfettamente con pandas, TensorFlow e scikit-learn. La libreria supporta array multidimensionali, matrici, algebra lineare e trasformate di Fourier. Gli array utilizzano memoria contigua, rendendoli più veloci delle liste Python. Questa velocità rende NumPy uno strumento fondamentale per il calcolo scientifico e l’analisi dei dati.

Excel è ampiamente utilizzato per memorizzare set di dati, ma non è ottimizzato per i flussi di lavoro Python. I metodi di conversione tradizionali richiedono spesso librerie aggiuntive, più passaggi e parsing manuale. Aspose.Cells consente di esportare dati da Excel, TSV, CSV e JSON direttamente in array NumPy. Questo collega i fogli di calcolo con gli strumenti numerici di Python.

What is Aspose.Cells for Python?

Aspose.Cells è la migliore libreria Excel per Python per gli sviluppatori. Permette di leggere, creare e manipolare fogli di calcolo senza fare affidamento su Microsoft Excel. La variante Python via .NET incorpora la versione .NET di Aspose.Cells e la espone a Python. Aspose.Cells semplifica il processo di conversione di Excel in NumPy. Ti consente di esportare un intero libro di lavoro, foglio di lavoro, intervallo, riga, colonna o persino un oggetto lista direttamente in array NumPy. Ciò significa che puoi passare da file Excel grezzi a dati puliti e pronti all’uso per analisi o apprendimento automatico con il minimo sforzo.

Puoi installarlo da PyPI:

pip install aspose‑cells‑python

Una volta installata, importa la libreria insieme a NumPy:

import aspose.cells as cells
import numpy as np

Come convertire un workbook di Excel in NumPy

Un workbook può contenere più fogli di lavoro. Puoi esportare un intero workbook Excel in un ndarray NumPy in un colpo solo. Questo è utile quando vuoi elaborare dati da tutti i fogli direttamente in Python.

Segui i passaggi seguenti per convertire un workbook Excel in un array NumPy:

  1. Carica il file Excel utilizzando la classe Workbook.
  2. Accedi a tutti i fogli di lavoro dal workbook.
  3. Scorri ciascun foglio di lavoro per leggere le sue righe e colonne utilizzate.
  4. Estrai i valori delle celle riga per riga.
  5. Memorizza i dati di ciascun foglio in un elenco di elenchi.
  6. Convertire i dati raccolti in un NumPy ndarray utilizzando np.asarray().

Ecco un semplice script Python che esporta un campione di cartella di lavoro:

import aspose.cells as cells
import numpy as np

# carica libro di lavoro
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets

# preparare un elenco vuoto per contenere i dati del foglio
sheets_data = []

# scorrere tramite fogli di lavoro
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)

# convertire in ndarray con dtype=object per preservare le stringhe
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)
Come convertire un workbook Excel in NumPy

Come Convertire un Documento Excel in NumPy

Questo script sostituisce eventuali celle vuote con stringhe vuote e combina tutti i fogli di lavoro in un’unica array NumPy. L’array excel finale è tridimensionale: il primo livello rappresenta i fogli, il secondo rappresenta le righe e il terzo rappresenta le colonne.

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

Convertire un singolo foglio di lavoro in NumPy

A volte, potresti voler lavorare con un singolo foglio di lavoro anziché un intero workbook. Puoi estrarre direttamente i valori delle celle di un foglio di lavoro e convertirli in un ndarray NumPy seguendo i passaggi sottostanti:

  1. Carica il file Excel con la classe Workbook.
  2. Accedi al foglio di lavoro target tramite il suo indice.
  3. Ottieni il numero massimo di righe e colonne utilizzate.
  4. Scorri ogni riga e colonna per raccogliere i valori delle celle.
  5. Memorizza i dati estratti in un elenco.
  6. Converti l’elenco in un array NumPy con np.asarray().

Ecco lo script Python che esporta un singolo foglio di lavoro:

import aspose.cells as cells
import numpy as np

# carica cartella di lavoro
workbook = cells.Workbook("sample_data.xlsx")

# accedere al primo foglio di lavoro
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)

# convertire in ndarray numpy
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)

Questo crea un ndarray 2D dove le righe corrispondono alle righe di Excel e le colonne corrispondono alle colonne di Excel.

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

Come convertire un intervallo di Excel in NumPy

In alcuni casi, hai solo bisogno di un intervallo specifico di celle. Aspose.Cells ti consente di definire un intervallo ed esportarlo direttamente in un array NumPy.

Segui i passi seguenti:

  1. Carica il libro con la classe Workbook.
  2. Seleziona il foglio di lavoro di destinazione.
  3. Definisci un intervallo utilizzando il metodo worksheet.cells.createrange().
  4. Scorri le righe e le colonne dell’intervallo per estrarre i valori.
  5. Converti i valori in un ndarray di NumPy utilizzando np.asarray().

Il seguente esempio di codice mostra come convertire un intervallo di celle da Excel in un’array NumPy:

import aspose.cells as cells
import numpy as np

# carica il workbook
workbook = cells.Workbook("sample_data.xlsx")

# seleziona il primo foglio di lavoro
sheet = workbook.worksheets.get(0)

# definire un intervallo (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)

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

Se l’intervallo selezionato copre due colonne e tre righe, l’array risultante sarà 3×2, come ad esempio:

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

Convertire una tabella Excel (ListObject) in NumPy

Una tabella Excel è un intervallo strutturato di dati con intestazioni e righe. In Aspose.Cells, questo è rappresentato come un ListObject. Puoi facilmente esportare il contenuto di una tabella Excel in un ndarray NumPy per ulteriori elaborazioni in Python.

  1. Carica il workbook e seleziona il foglio di lavoro.
  2. Accedi all’oggetto ListObject (tabella Excel) dal foglio di lavoro.
  3. Esporta i dati della tabella in un array bidimensionale.
  4. Converti l’array in un ndarray di NumPy.
  5. Usa l’ndarray per flussi di lavoro di data science o machine learning.

Il seguente esempio di codice mostra come esportare una tabella Excel (ListObject) in NumPy:

import aspose.cells as cells
import numpy as np

# Carica il file Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)

# Crea una tabella che copre A1:C4 con intestazioni
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)

L’array NumPy risultante conterrà le righe e le colonne della tabella Excel, inclusi gli intestazioni se fanno parte dell’intervallo di dati.

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

Come Convertire una Riga di Excel in NumPy

A volte hai bisogno solo di dati da una singola riga in Excel. Aspose.Cells semplifica l’estrazione di una riga e il caricamento direttamente in un array NumPy.

  1. Carica il file Excel.
  2. Seleziona il foglio di lavoro.
  3. Scegli l’indice della riga che desideri esportare.
  4. Esporta i valori della riga come un array.
  5. Converti l’array in un ndarray di NumPy per l’elaborazione.

Il seguente codice Python mostra come convertire una riga di un foglio Excel in un ndarray NumPy:

import aspose.cells as cells
import numpy as np

# Carica il file Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells

max_col = sheet_cells.max_data_column + 1

# scegli una riga (ad esempio, l'ultima riga di dati)
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)

L’ndarray NumPy risultante sarà un array unidimensionale contenente tutti i valori della riga selezionata.

['Detroit' 'Central' 3074]

Convertire una colonna di Excel in NumPy

In alcuni casi, potresti aver bisogno solo dei valori di una singola colonna di un foglio Excel. Aspose.Cells ti consente di esportare facilmente una colonna e trasformarla in un array NumPy.

  1. Carica il file Excel.
  2. Seleziona il foglio di lavoro di destinazione.
  3. Scegli l’indice della colonna da esportare.
  4. Esporta i valori della colonna.
  5. Convertire i valori in un ndarray di NumPy.

Il seguente codice Python mostra come convertire una colonna di un foglio Excel in un array NumPy:

import aspose.cells as cells
import numpy as np

# Carica file 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

# scegli una colonna (ad es., l'ultima colonna di dati)
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)

Il risultato dell’array NumPy ndarray sarà un array unidimensionale contenente tutti i valori della colonna selezionata.

['Store' 3055 3036 3074]

Suggerimenti per lavorare con Aspose.Cells e NumPy

  • Considerazioni sulla memoria: La conversione di fogli di lavoro molto grandi in array NumPy può consumare una quantità significativa di memoria. Elaborare i fogli di lavoro singolarmente o leggere intervalli specifici se possibile.

  • Tipi di dati: Se il tuo foglio di calcolo contiene tipi misti (stringhe, numeri, date), specifica dtype=object quando converti le liste in array NumPy. Per dati numerici omogenei puoi lasciare che NumPy inferisca il tipo.

  • Missing values: Aspose.Cells restituisce None per le celle vuote. Negli esempi sopra, le abbiamo sostituite con stringhe vuote. Puoi anche sostituirle con np.nan o un altro valore sentinella a seconda del tuo caso d’uso.

Ottieni una licenza gratuita

Vuoi esplorare il pieno potere di Aspose.Cells for Python? Puoi richiedere una free temporary license.Questo ti consente di testare tutte le funzionalità senza limitazioni o filigrane di valutazione.

Con un permesso temporaneo, puoi:

  • Lavorare con grandi file Excel.
  • Apply advanced formatting and styling.
  • Esegui conversioni (ad es., Excel in PDF, NumPy e altro).

È il modo migliore per valutare le prestazioni e la compatibilità con i tuoi progetti prima di prendere una decisione di acquisto.

Risorse Utili

Ecco alcune risorse utili per aiutarti a iniziare con Aspose.Cells for Python tramite .NET:

Conclusione

Aspose.Cells for Python tramite .NET semplifica la conversione dei dati di Excel in array NumPy. Che tu abbia bisogno dell’intero workbook, di un singolo foglio, di un intervallo specifico, di una tabella, di una riga o di una colonna, la libreria fornisce metodi chiari per iterare attraverso le celle e costruire elenchi che NumPy può utilizzare. Combinando la capacità di Aspose.Cells di leggere molti formati di fogli di calcolo con la potenza numerica di NumPy, puoi integrare i dati di Excel senza soluzione di continuità nelle tue pipeline di dati Python.

Se hai domande, sentiti libero di chiedere nel nostro free support forum, e saremo felici di aiutarti.

See Also