Bekerja dengan data Excel di Python adalah hal yang umum. Ini sering melibatkan pemindahan data dari Excel ke dalam bentuk yang dapat dimanipulasi secara efisien. Mengonversi data Excel ke dalam format yang siap untuk analisis bisa jadi sulit. Dalam posting blog ini, Anda akan belajar bagaimana mengonversi Excel menjadi array NumPy hanya dalam beberapa baris kode.

Mengapa NumPy?

NumPy (Numerical Python) adalah pustaka Python sumber terbuka. Ini adalah tulang punggung ilmu data dan pembelajaran mesin di Python. NumPy menyediakan operasi array yang cepat dan komputasi numerik yang efisien. Ini bekerja dengan lancar dengan pandas, TensorFlow, dan scikit-learn. Pustaka ini mendukung array multidimensi, matriks, aljabar linear, dan transformasi Fourier. Array menggunakan memori bersebelahan, menjadikannya lebih cepat daripada daftar Python. Kecepatan ini menjadikan NumPy alat inti untuk komputasi ilmiah dan analisis data.

Excel banyak digunakan untuk menyimpan dataset, tetapi tidak dioptimalkan untuk alur kerja Python. Metode konversi tradisional sering kali memerlukan pustaka tambahan, beberapa langkah, dan parsing manual. Aspose.Cells memungkinkan Anda mengekspor data dari Excel, TSV, CSV, dan JSON secara langsung ke dalam array NumPy. Ini menghubungkan spreadsheet dengan alat numerik Python.

Apa itu Aspose.Cells for Python?

Aspose.Cells adalah perpustakaan Excel terbaik untuk pengembang Python.Ini memungkinkan membaca, membuat, dan memanipulasi spreadsheet tanpa bergantung pada Microsoft Excel. Varian Python melalui .NET menyematkan versi .NET dari Aspose.Cells dan mengeksposnya ke Python. Aspose.Cells menyederhanakan proses konversi Excel ke NumPy. Ini memungkinkan Anda mengekspor seluruh buku kerja, lembar kerja, rentang, baris, kolom, atau bahkan objek daftar langsung ke dalam ndarray NumPy. Ini berarti Anda dapat berpindah dari file Excel mentah ke data bersih yang siap digunakan untuk analisis atau pembelajaran mesin dengan upaya minimal.

Anda dapat menginstalnya dari PyPI:

pip install aspose‑cells‑python

Setelah dipasang, impor pustaka bersama dengan NumPy:

import aspose.cells as cells
import numpy as np

Cara Mengonversi Workbook Excel ke NumPy

Sebuah workbook dapat berisi beberapa worksheet. Anda dapat mengekspor seluruh workbook Excel ke dalam ndarray NumPy sekaligus. Ini sangat berguna ketika Anda ingin memproses data dari semua sheet secara langsung di Python.

Ikuti langkah-langkah di bawah ini untuk mengonversi buku kerja Excel ke ndarray NumPy:

  1. Muat workbook Excel menggunakan kelas Workbook.
  2. Akses semua lembar kerja dari buku kerja.
  3. Loop melalui setiap worksheet untuk membaca baris dan kolom yang digunakan.
  4. Ekstrak nilai sel baris demi baris.
  5. Simpan data tiap sheet ke dalam daftar daftar.
  6. Ubah data yang dikumpulkan menjadi ndarray NumPy menggunakan np.asarray().

Berikut adalah skrip Python yang disederhanakan yang mengekspor workbook contoh:

import aspose.cells as cells
import numpy as np

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

# siapkan daftar kosong untuk menampung data lembar
sheets_data = []

# loop melalui lembar kerja
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)

# konversi ke ndarray dengan dtype=object untuk mempertahankan string
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)
Cara Mengonversi Workbook Excel ke NumPy

Cara Mengonversi Workbook Excel ke NumPy

Skrip ini menggantikan sel kosong dengan string kosong dan menggabungkan semua lembar kerja menjadi satu array NumPy. Array excelarray final adalah tiga dimensi: tingkat pertama mewakili lembar, tingkat kedua mewakili baris, dan tingkat ketiga mewakili kolom.

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

Mengonversi Sebuah Lembar Kerja Tunggal ke NumPy

Kadang-kadang, Anda mungkin ingin bekerja dengan satu lembar kerja daripada seluruh buku kerja. Anda dapat langsung mengekstrak nilai sel dari satu lembar kerja dan mengubahnya menjadi ndarray NumPy dengan mengikuti langkah-langkah di bawah ini:

  1. Load file Excel dengan kelas Workbook.
  2. Akses lembar kerja target dengan menggunakan indeksnya.
  3. Dapatkan baris dan kolom yang paling banyak digunakan.
  4. Loop melalui setiap baris dan kolom untuk mengumpulkan nilai sel.
  5. Simpan data yang diekstraksi dalam sebuah daftar.
  6. Ubah daftar menjadi ndarray NumPy dengan np.asarray().

Berikut adalah skrip Python yang mengekspor satu lembar kerja:

import aspose.cells as cells
import numpy as np

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

# akses lembar kerja pertama
sheet = workbook.worksheets[0]

# dapatkan maksimum baris dan kolom dengan 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)

Ini membuat ndarray 2D di mana baris dipetakan ke baris Excel dan kolom dipetakan ke kolom Excel.

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

Cara Mengonversi Rentang Excel ke NumPy

Dalam kasus tertentu, Anda hanya perlu rentang sel tertentu. Aspose.Cells memungkinkan Anda untuk mendefinisikan suatu rentang dan mengekspornya langsung ke dalam ndarray NumPy.

Ikuti langkah-langkah di bawah ini:

  1. Muat buku kerja dengan kelas Workbook.
  2. Pilih lembar kerja target.
  3. Tentukan rentang menggunakan metode worksheet.cells.createrange().
  4. Loop melalui baris dan kolom dari rentang untuk mengekstrak nilai.
  5. Ubah nilai-nilai menjadi ndarray NumPy menggunakan np.asarray().

Contoh kode berikut menunjukkan cara mengonversi rentang sel dari Excel menjadi NumPy ndarray:

import aspose.cells as cells
import numpy as np

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

# pilih lembar kerja pertama
sheet = workbook.worksheets.get(0)

# definisikan rentang (B1 hingga 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)

Jika rentang yang dipilih mencakup dua kolom dan tiga baris, array yang dihasilkan akan menjadi 3×2, seperti:

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

Mengonversi Tabel Excel (ListObject) ke NumPy

Tabel Excel adalah rentang data terstruktur dengan header dan baris. Di Aspose.Cells, ini diwakili sebagai ListObject. Anda dapat dengan mudah mengekspor konten Tabel Excel ke dalam ndarray NumPy untuk pemrosesan lebih lanjut di Python.

  1. Muatan buku kerja dan pilih lembar kerja.
  2. Akses ListObject (Tabel Excel) dari lembar kerja.
  3. Ekspor data tabel ke dalam array dua dimensi.
  4. Ubah array menjadi ndarray NumPy.
  5. Gunakan ndarray untuk alur kerja ilmu data atau pembelajaran mesin.

Contoh kode berikut menunjukkan cara mengekspor tabel Excel (ListObject) ke NumPy:

import aspose.cells as cells
import numpy as np

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

# Buat tabel yang mencakup A1:C4 dengan header
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)

Hasil ndarray NumPy akan berisi baris dan kolom dari Tabel Excel, termasuk header jika mereka adalah bagian dari rentang data.

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

Cara Mengonversi Sebaris Excel ke NumPy

Kadang-kadang Anda hanya perlu data dari satu baris dalam Excel. Aspose.Cells membuatnya sederhana untuk mengekstrak satu baris dan memuatnya langsung ke dalam ndarray NumPy.

  1. Muat workbook Excel.
  2. Pilih lembar kerja.
  3. Pilih indeks baris yang ingin Anda ekspor.
  4. Ekspor nilai baris sebagai array.
  5. Ubah array menjadi ndarray NumPy untuk pemrosesan.

Kode Python berikut menunjukkan cara mengonversi baris dari lembar Excel ke ndarray NumPy:

import aspose.cells as cells
import numpy as np

# Muat 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

# pilih satu baris (misalnya, baris data terakhir)
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)

Array NumPy ndarray yang dihasilkan akan menjadi array satu dimensi yang berisi semua nilai dari baris yang dipilih.

['Detroit' 'Central' 3074]

Convert a Column of Excel to NumPy

Dalam beberapa kasus, Anda mungkin hanya memerlukan nilai dari satu kolom di lembar Excel. Aspose.Cells memungkinkan Anda untuk mengekspor kolom dengan mudah dan mengubahnya menjadi ndarray NumPy.

  1. Muat workbook Excel.
  2. Pilih lembar kerja target.
  3. Pilih indeks kolom untuk diekspor.
  4. Ekspor nilai kolom.
  5. Ubah nilai-nilai menjadi ndarray NumPy.

Kode Python berikut menunjukkan cara mengonversi kolom dari lembar Excel menjadi NumPy ndarray:

import aspose.cells as cells
import numpy as np

# Muat 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

# pilih kolom (misalnya, kolom data terakhir)
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)

Array NumPy ndarray yang dihasilkan akan menjadi array satu dimensi yang berisi semua nilai dari kolom yang dipilih.

['Store' 3055 3036 3074]

Tips untuk Bekerja dengan Aspose.Cells dan NumPy

  • Pertimbangan memori: Mengonversi workbook yang sangat besar menjadi array NumPy dapat memakan memori yang signifikan. Proses lembar kerja secara individu atau baca rentang tertentu jika memungkinkan.

  • Tipe data: Jika spreadsheet Anda berisi tipe campuran (string, angka, tanggal), tentukan dtype=object saat mengonversi daftar ke array NumPy. Untuk data numerik yang homogen, Anda dapat membiarkan NumPy menyimpulkan tipe.

  • Nilai yang hilang: Aspose.Cells mengembalikan None untuk sel kosong. Dalam contoh di atas, kami menggantinya dengan string kosong. Anda juga dapat menggantinya dengan np.nan atau nilai penanda lainnya tergantung pada kasus penggunaan Anda.

Dapatkan Lisensi Gratis

Apakah Anda ingin mengeksplorasi kekuatan penuh dari Aspose.Cells for Python? Anda dapat meminta lisensi sementara gratis.Ini memungkinkan Anda untuk menguji semua fitur tanpa batasan atau watermark evaluasi.

Dengan lisensi sementara, Anda dapat:

  • Bekerja dengan file Excel besar.
  • Apply advanced formatting and styling.
  • Lakukan konversi (misalnya, Excel ke PDF, NumPy, dan lainnya).

Ini adalah cara terbaik untuk mengevaluasi kinerja dan kompatibilitas dengan proyek Anda sebelum membuat keputusan pembelian.

Sumber Daya yang Berguna

Berikut adalah beberapa sumber daya berharga untuk membantu Anda memulai dengan Aspose.Cells for Python melalui .NET:

Kesimpulan

Aspose.Cells for Python melalui .NET menyederhanakan konversi data Excel ke dalam array NumPy. Baik Anda memerlukan seluruh workbook, satu lembar, rentang tertentu, tabel, baris, atau kolom, pustaka ini menyediakan metode yang jelas untuk mengiterasi sel dan membangun daftar yang dapat dikonsumsi oleh NumPy. Dengan menggabungkan kemampuan Aspose.Cells untuk membaca banyak format spreadsheet dengan kekuatan numerik NumPy, Anda dapat mengintegrasikan data Excel dengan mulus ke dalam alur data Python Anda.

Jika Anda memiliki pertanyaan, silakan bertanya di forum dukungan gratis kami, dan kami akan dengan senang hati membantu.

Lihat Juga