Python’da Excel verileriyle çalışmak yaygındır. Genellikle verilerin Excel’den verimli bir şekilde manipüle edilebilecek bir forma taşınmasını içerir. Excel verilerini analiz için hazır bir formata dönüştürmek zor olabilir. Bu blog yazısında, birkaç satır kodla Excel’i NumPy dizilerine nasıl dönüştüreceğinizi öğreneceksiniz.
Neden NumPy?
NumPy (Numerical Python), açık kaynaklı bir Python kütüphanesidir. Veri bilimi ve makine öğrenimi için Python’daki temel araçtır. NumPy, hızlı dizi işlemleri ve verimli sayısal hesaplamalar sağlar. Pandas, TensorFlow ve scikit-learn ile sorunsuz bir şekilde çalışır. Kütüphane, çok boyutlu dizileri, matrisleri, lineer cebiri ve Fourier dönüşümlerini destekler. Diziler, kesintisiz bellek kullanarak Python listelerinden daha hızlıdır. Bu hız, NumPy’yı bilimsel hesaplama ve veri analizi için temel bir araç haline getirir.
Excel, veri setlerini depolamak için yaygın olarak kullanılmaktadır, ancak Python iş akışları için optimize edilmemiştir. Geleneksel dönüşüm yöntemleri genellikle ek kütüphaneler, birden fazla adım ve manuel ayrıştırma gerektirir. Aspose.Cells, verileri doğrudan NumPy dizilerine Excel, TSV, CSV ve JSON formatlarından dışa aktarmanıza olanak tanır. Bu, hesap tablolarını Python’un sayısal araçlarıyla birleştirir.
Aspose.Cells for Python nedir?
Aspose.Cells Python geliştiricileri için en iyi Excel kütüphanesidir.Microsoft Excel’e güvenmeden elektronik tabloları okuma, oluşturma ve manipüle etme imkanı tanır. .NET varyantı, Aspose.Cells’in .NET sürümünü gömerek Python’a sunar. Aspose.Cells, Excel’den NumPy’ye geçiş sürecini basitleştirir. Tüm bir çalışma kitabını, çalışma sayfasını, aralığı, satırı, sütunu veya hatta bir liste nesnesini doğrudan NumPy ndarrays içine dışa aktarmanıza olanak tanır. Bu, ham Excel dosyalarından analiz veya makine öğrenimi için temiz, kullanıma hazır verilere minimum çaba ile geçmenizi sağlar.
PyPI’den yükleyebilirsiniz:
pip install aspose‑cells‑python
Bir kez yüklendikten sonra, kütüphaneyi NumPy ile birlikte içe aktarın:
import aspose.cells as cells
import numpy as np
Excel Çalışma Kitabını NumPy’ye Nasıl Dönüştürülür
Bir çalışma kitabı birden fazla çalışma sayfası içerebilir. Tüm bir Excel çalışma kitabını tek seferde bir NumPy ndarray’ye aktarabilirsiniz. Bu, tüm sayfalardaki verileri doğrudan Python’da işlemek istediğinizde kullanışlıdır.
Aşağıdaki adımları izleyerek bir Excel çalışma kitabını NumPy ndarray’ye dönüştürün:
- Excel çalışma kitabını
Workbook
sınıfını kullanarak yükleyin. - Tüm çalışma sayfalarına çalışma kitabından erişin.
- Her bir çalışma sayfasında kullanılan satır ve sütunları okumak için döngü oluşturun.
- Hücre değerlerini satır bazında çıkarın.
- Her sayfanın verilerini bir liste listesine kaydedin.
- Toplanan verileri np.asarray() kullanarak bir NumPy ndarray’ye dönüştürün.
İşte bir örnek çalışma kitabını dışa aktaran basit bir Python betiği:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets
# boş bir liste hazırlayın, sayfa verilerini tutmak için
sheets_data = []
# çalışma sayfalarında döngü oluşturma
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)
# dizi nesnesine dönüştür ve dtypeni=nesne olarak ayarla, böylece dizeleri koru.
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)

Excel Çalışma Kitabını NumPy’ye Nasıl Dönüştürülür
Bu betik, boş hücreleri boş dizelerle değiştirir ve tüm çalışma sayfalarını tek bir NumPy dizisine birleştirir. Nihai excelarray üç boyutludur: birinci seviye sayfaları, ikinci seviye satırları ve üçüncü seviye sütunları temsil eder.
[[['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']]]
Tek Bir Çalışma Sayfasını NumPy’ye Dönüştürmek
Bazen, bir tüm çalışma kitabı yerine tek bir çalışma sayfası ile çalışmak isteyebilirsiniz. Bir çalışma sayfasının hücre değerlerini doğrudan çıkarabilir ve aşağıdaki adımları takip ederek bunları bir NumPy ndarray’ye dönüştürebilirsiniz:
Workbook
sınıfı ile Excel dosyasını yükleyin.- Hedef çalışma sayfasına dizin numarasıyla erişin.
- Maksimum kullanılan satır ve sütunları al.
- Her satır ve sütun boyunca döngü yaparak hücre değerlerini toplayın.
- Veri listeye kaydedilsin.
- Listeyi np.asarray() ile bir NumPy ndarray’ye dönüştürün.
İşte tek bir çalışma sayfasını dışa aktaran Python betiği:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
# ilk çalışma sayfasına erişin
sheet = workbook.worksheets[0]
# max satır ve veri ile sütunları alın
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)
# numpy ndarray'ye dönüştür
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)
Bu, satırların Excel satırlarına ve sütunların Excel sütunlarına eşlendiği 2D ndarray oluşturur.
[['City' 'Region' 'Store']
['Chicago' 'Central' '3055']
['New York' 'East' '3036']
['Detroit' 'Central' '3074']]
Excel aralığını NumPy’ye nasıl dönüştürülür
Belli durumlarda, yalnızca belirli bir hücre aralığına ihtiyacınız vardır. Aspose.Cells, bir aralık tanımlamanıza ve bunu doğrudan bir NumPy ndarray’sine dışa aktarmanıza olanak tanır.
Aşağıdaki adımları izleyin:
Workbook
sınıfı ile çalışma kitabını yükleyin.- Hedef çalışma sayfasını seçin.
- Bir aralık tanımlamak için
worksheet.cells.createrange()
yöntemini kullanın. - Satırları ve sütunları döngüye alarak aralıktaki değerleri çıkarın.
- Değerleri np.asarray() kullanarak bir NumPy ndarray’e dönüştürün.
Aşağıdaki kod örneği, Excel’deki bir hücre aralığını NumPy ndarray’ye nasıl dönüştüreceğinizi göstermektedir:
import aspose.cells as cells
import numpy as np
# load workbook
workbook = cells.Workbook("sample_data.xlsx")
# ilk çalışma sayfasını seçin
sheet = workbook.worksheets.get(0)
# B1'den C3'e kadar bir aralık tanımlayın.
cell_range = sheet.cells.create_range("B1", "C3")
# veri aralığından çıkarma
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)
# numpy ndarray'ye dönüştür
range_array = np.asarray(range_data, dtype=object)
print(range_array)
Seçilen aralık iki sütun ve üç satırı kapsıyorsa, sonuçta elde edilen dizi 3×2 olacaktır, şöyle:
[['City' 'Region']
['Chicago' 'Central']
['New York' 'East']]
Excel Tablosunu (ListObject) NumPy’ya Dönüştürme
Bir Excel Tablosu, başlıklar ve satırlar ile yapılandırılmış bir veri aralığıdır. Aspose.Cells’de bu, bir ListObject olarak temsil edilir. Excel Tablosu’nun içeriğini Python’da daha fazla işleme için kolayca bir NumPy ndarray’sine aktarabilirsiniz.
- Çalışma kitabını yükleyin ve çalışma sayfasını seçin.
- Çalışma sayfasından ListObject’i (Excel Tablosu) erişin.
- Tablonun verilerini iki boyutlu bir diziye aktarın.
- Diziyi bir NumPy ndarray’ye dönüştürün.
- Veri bilimi veya makine öğrenimi iş akışları için ndarray kullanın.
Aşağıdaki kod örneği, bir Excel tablosunu (ListObject) NumPy’ye nasıl aktaracağınızı göstermektedir:
import aspose.cells as cells
import numpy as np
# Excel dosyasını yükle
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
# A1: Başlık 1
B1: Başlık 2
C1: Başlık 3
A2: Veri 1
B2: Veri 2
C2: Veri 3
A3: Veri 4
B3: Veri 5
C3: Veri 6
A4: Veri 7
B4: Veri 8
C4: Veri 9
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)
Sonuçta elde edilen NumPy ndarray, Excel Tablosu’nun satır ve sütunlarını içerecek, eğer veri aralığının bir parçasıysalar başlıkları da dahil edecektir.
[['City', 'Region', 'Store'],
['Chicago', 'Central', '3055'],
['New York', 'East', '3036'],
['Detroit', 'Central', '3074']]
Excel satırını NumPy’ye nasıl dönüştürülür
Bazen Excel’de yalnızca tek bir satırdan veri almanız gerekir. Aspose.Cells, bir satırı çıkarmayı ve doğrudan bir NumPy ndarray’sine yüklemeyi basit hale getirir.
- Excel çalışma kitabını yükleyin.
- Seçiniz çalışma sayfası.
- İhraç etmek istediğiniz satır indeksini seçin.
- Satır değerlerini bir dizi olarak dışa aktarın.
- Diziyi işlemek için bir NumPy ndarray’ye dönüştürün.
Aşağıdaki Python kodu, bir Excel sayfasındaki bir satırı NumPy ndarray’ye nasıl dönüştüreceğinizi gösterir:
import aspose.cells as cells
import numpy as np
# Excel dosyasını yükleyin.
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells
max_col = sheet_cells.max_data_column + 1
# bir satır seçin (örn., son veri satırı)
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)
Sonuçta elde edilen NumPy ndarray, seçilen satırdan tüm değerleri içeren bir boyutlu dizi olacaktır.
['Detroit' 'Central' 3074]
Excel’deki Bir Sütunu NumPy’ye Dönüştürün
Bazı durumlarda, yalnızca bir Excel sayfasındaki tek bir sütunun değerlerine ihtiyacınız olabilir. Aspose.Cells, bir sütunu kolayca dışa aktarmanıza ve bunu bir NumPy ndarray’ye dönüştürmenize olanak tanır.
- Excel çalışma kitabını yükleyin.
- Hedef çalışma sayfasını seçin.
- Kolon dizinini dışa aktarmak için seçin.
- Sütun değerlerini dışa aktarın.
- Değerleri bir NumPy ndarray’sine dönüştür.
Aşağıdaki Python kodu, bir Excel sayfasının sütununu NumPy ndarray’ye nasıl dönüştüreceğinizi göstermektedir:
import aspose.cells as cells
import numpy as np
# Excel dosyasını yükle
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
# bir sütun seçin (örn. son veri sütunu)
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)
Sonuçta elde edilen NumPy ndarray, seçilen sütundaki tüm değerleri içeren tek boyutlu bir dizi olacaktır.
['Store' 3055 3036 3074]
Aspose.Cells ve NumPy ile Çalışma İpuçları
Hafıza dikkate alındığında: Çok büyük çalışma kitaplarını NumPy dizilerine dönüştürmek önemli miktarda bellek tüketebilir. Mümkünse çalışma sayfalarını ayrı ayrı işleyin veya belirli aralıkları okuyun.
Veri türleri: Eğer elektronik tablonuz karışık türler (string’ler, sayılar, tarihler) içeriyorsa, listeleri NumPy dizilerine dönüştürürken dtype=object belirtin. Homojen sayısal veriler için NumPy’nin türü çıkarmasına izin verebilirsiniz.
Eksik değerler: Aspose.Cells boş hücreler için None döndürür. Yukarıdaki örneklerde, bunları boş dizeler ile değiştirdik. Ayrıca, kullanım durumunuza bağlı olarak np.nan veya başka bir sentinel değeri ile de değiştirebilirsiniz.
Ücretsiz Lisans Alın
Aspose.Cells for Python`ın tam gücünü keşfetmek ister misiniz? Ücretsiz geçici lisans talep edebilirsiniz. Bu, tüm özellikleri sınırlama veya değerlendirme filigranı olmadan test etmenizi sağlar.
Geçici bir lisansla şunları yapabilirsiniz:
- Büyük Excel dosyalarıyla çalışın.
- Apply advanced formatting and styling.
- Dönüşümler gerçekleştirin (örneğin, Excel’den PDF’ye, NumPy ve daha fazlası).
Bu, bir satın alma kararı vermeden önce performansı ve projelerinizle uyumluluğu değerlendirmek için en iyi yoldur.
Kullanışlı Kaynaklar
İşte Aspose.Cells for Python via .NET ile başlamanıza yardımcı olacak bazı değerli kaynaklar:
Sonuç
Aspose.Cells for Python via .NET, Excel verilerini NumPy dizilerine dönüştürmeyi basitleştirir. İster tüm çalışma kitabına, ister tek bir sayfaya, belirli bir aralığa, bir tabloya, bir sıraya veya bir sütuna ihtiyacınız olsun, kütüphane hücreler arasında yineleme yapmak ve NumPy’nin tüketebileceği listeler oluşturmak için net yöntemler sağlar. Aspose.Cells in birçok elektronik tablo formatını okuma yeteneği ile NumPy`nin sayısal gücünü birleştirerek, Excel verilerini Python veri akışlarınıza sorunsuz bir şekilde entegre edebilirsiniz.
Eğer herhangi bir sorunuz varsa, lütfen free support forum adresinde sormaktan çekinmeyin ve yardımcı olmaktan mutluluk duyarız.