کار کردن با دادههای Excel در Python رایج است. این کار اغلب شامل انتقال دادهها از Excel به شکلی است که بتوان به طور مؤثری آنها را دستکاری کرد. تبدیل دادههای Excel به فرمت آماده برای تحلیل میتواند دشوار باشد. در این پست وبلاگی، شما یاد خواهید گرفت که چگونه دادههای Excel را به آرایههای NumPy در فقط چند خط کد تبدیل کنید.
چرا NumPy؟
NumPy (نومریکال پایتون) یک کتابخانه متن باز پایتون است. این کتابخانه ستون فقرات علم داده و یادگیری ماشین در پایتون است. NumPy عملیات آرایه سریع و محاسبات عددی کارآمدی را ارائه میدهد. این کتابخانه به خوبی با pandas، TensorFlow و scikit-learn کار میکند. این کتابخانه از آرایههای چند بعدی، ماتریسها، جبر خطی و تبدیل فوریه پشتیبانی میکند. آرایهها از حافظه پیوسته استفاده میکنند که آنها را سریعتر از لیستهای پایتون میسازد. این سرعت باعث میشود NumPy یک ابزار اصلی برای محاسبات علمی و تحلیل دادهها باشد.
Excel بهطور گستردهای برای ذخیرهسازی مجموعههای داده استفاده میشود، اما برای جریانهای کاری پایتون بهینهسازی نشده است. روشهای تبدیل سنتی معمولاً به کتابخانههای اضافی، مراحل متعدد و تجزیه و تحلیل دستی نیاز دارند. Aspose.Cells به شما امکان میدهد دادهها را بهصورت مستقیم از Excel، TSV، CSV و JSON به آرایههای NumPy صادر کنید. این موضوع صفحات گسترده را با ابزارهای عددی پایتون متصل میکند.
Aspose.Cells for Python یک کتابخانه است که به توسعهدهندگان این امکان را میدهد تا به آسانی با پروندههای Excel کار کنند. این کتابخانه به شما اجازه میدهد تا ایجاد، اصلاح، تبدیل و چاپ اسناد Excel را به سادگی انجام دهید.
Aspose.Cells بهترین کتابخانه Excel برای توسعهدهندگان Python است. این کتابخانه امکان خواندن، ایجاد و دستکاری صفحات گسترده را بدون نیاز به Microsoft Excel فراهم میکند. نسخه Python از طریق .NET شامل نسخه .NET Aspose.Cells است و آن را به Python معرفی میکند. Aspose.Cells فرایند تبدیل Excel به NumPy را ساده میکند. این امکان را به شما میدهد که یک کتاب کار کامل، کاربرگ، دامنه، ردیف، ستون یا حتی یک شیء لیست را مستقیماً به ndarray های NumPy صادر کنید. این بدان معناست که میتوانید از فایلهای خام Excel به دادههای تمیز و آماده برای استفاده در تحلیل یا یادگیری ماشین با حداقل تلاش منتقل شوید.
شما میتوانید آن را از PyPI نصب کنید:
pip install aspose‑cells‑python
پس از نصب، کتابخانه را به همراه NumPy وارد کنید:
import aspose.cells as cells
import numpy as np
چگونه یک ورک بوک اکسل را به NumPy تبدیل کنیم
یک دفتر کار میتواند شامل چندین شیت باشد. میتوانید کل یک دفتر کار Excel را به طور همزمان به یک ndarray NumPy صادر کنید. این برای زمانی که میخواهید دادهها را مستقیماً از تمام شیتها در Python پردازش کنید، مفید است.
مراحل زیر را برای تبدیل یک کتابخانه Excel به یک ndarray NumPy دنبال کنید:
- کتابکار اکسل را با استفاده از کلاس
Workbookبارگذاری کنید. - به همه برگهها از کتاب کار دسترسی پیدا کنید.
- از هر برگه عبور کنید تا ردیفها و ستونهای مورد استفاده آن را بخوانید.
- مقدار سلولها را ردیف به ردیف استخراج کنید.
- هر داده از شیتها را در یک لیست از لیستها ذخیره کنید.
- دادههای جمعآوری شده را با استفاده از np.asarray() به یک ndarray از نوع NumPy تبدیل کنید.
اینجا یک اسکریپت ساده پایتون است که یک دفترکار نمونه را صادر میکند:
import aspose.cells as cells
import numpy as np
# بارگذاری دفترکار
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets
# یک لیست خالی برای نگهداری داده های برگه آماده کنید
sheets_data = []
# از روی کاربرگها عبور کنید
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)
# به ndarray با dtype=object تبدیل کنید تا رشتهها حفظ شوند.
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)

چگونه ورکبوک اکسل را به نامپای تبدیل کنیم
این اسکریپت هر سلول خالی را با رشتههای خالی جایگزین میکند و تمام شیتها را به یک آرایه NumPy ترکیب میکند. آرایه نهایی excelarray سهبعدی است: سطح اول نمایانگر شیتها، سطح دوم نمایانگر سطرها و سطح سوم نمایانگر ستونها میباشد.
[[['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']]]
تبدیل یک ورق کار به NumPy
گاهی اوقات، ممکن است بخواهید با یک ورق کاری واحد کار کنید به جای کل ورک بوک. شما میتوانید بهطور مستقیم مقادیر سلولهای یک ورق کاری را استخراج کرده و آنها را به یک ndarray NumPy تبدیل کنید با دنبال کردن مراحل زیر:
- فایل اکسل را با کلاس
Workbookبارگذاری کنید. - به کاربرگ هدف با استفاده از شاخص آن دسترسی پیدا کنید.
- حداکثر ردیفها و ستونهای مورد استفاده را دریافت کنید.
- از هر ردیف و ستون عبور کنید تا مقادیر سلولها را جمعآوری کنید.
- اطلاعات استخراج شده را در یک لیست ذخیره کنید.
- لیست را به یک ndarray NumPy با np.asarray() تبدیل کنید.
این کد پایتون است که یک ورق کاری واحد را صادر میکند:
import aspose.cells as cells
import numpy as np
# بارگذاری ورکبوک
workbook = cells.Workbook("sample_data.xlsx")
# به صفحه کار اول دسترسی پیدا کنید
sheet = workbook.worksheets[0]
# حداکثر سطرها و ستونها را با دادهها بگیرید
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)
# تبدیل به ndarray numpy
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)
این یک ndarray دو بعدی ایجاد میکند که سطرها به سطرهای اکسل و ستونها به ستونهای اکسل نگاشته میشوند.
[['City' 'Region' 'Store']
['Chicago' 'Central' '3055']
['New York' 'East' '3036']
['Detroit' 'Central' '3074']]
چگونه یک محدوده از اکسل را به NumPy تبدیل کنیم
در موارد خاص، شما تنها به یک بازه خاص از سلولها نیاز دارید. Aspose.Cells به شما این امکان را میدهد که یک بازه را تعریف کرده و آن را به طور مستقیم به یک ndarray NumPy صادر کنید.
مراحل زیر را دنبال کنید:
- کتاب کار را با کلاس
Workbookبارگذاری کنید. - برگه هدف را انتخاب کنید.
- یک محدوده را با استفاده از روش
worksheet.cells.createrange()تعریف کنید. - از بین ردیفها و ستونهای محدوده عبور کنید تا مقادیر را استخراج کنید.
- مقادیر را با استفاده از np.asarray() به یک ndarray در NumPy تبدیل کنید.
کد نمونه زیر نشان میدهد که چگونه میتوان یک دامنه از سلولها را از Excel به آرایه NumPy تبدیل کرد:
import aspose.cells as cells
import numpy as np
# بارگذاری کتاب کار
workbook = cells.Workbook("sample_data.xlsx")
# برگه اول را انتخاب کنید
sheet = workbook.worksheets.get(0)
# تعریف یک بازه (B1 تا C3)
cell_range = sheet.cells.create_range("B1", "C3")
# از محدوده داده استخراج کنید
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)
# به ndarray numpy تبدیل کنید
range_array = np.asarray(range_data, dtype=object)
print(range_array)
اگر محدوده انتخاب شده شامل دو ستون و سه ردیف باشد، آرایه حاصل ۳×۲ خواهد بود، مانند:
[['City' 'Region']
['Chicago' 'Central']
['New York' 'East']]
تبدیل یک جدول Excel (ListObject) به NumPy
یک جدول اکسل یک محدوده ساختاریافته از دادهها با سرستونها و ردیفها است. در Aspose.Cells، این به عنوان یک ListObject نمایش داده میشود. شما میتوانید به راحتی محتوای یک جدول اکسل را به یک ndarray NumPy برای پردازش بیشتر در پایتون صادر کنید.
- بارگذاری دفتر کاری و انتخاب ورق کار.
- به شیوه دسترسی به ListObject (جدول اکسل) از Worksheet.
- اطلاعات جدول را به یک آرایه دو بعدی صادر کنید.
- آرایه را به یک ndarray NumPy تبدیل کنید.
- از ndarray برای علم داده یا روندهای یادگیری ماشین استفاده کنید.
محتوای زیر یک مثال کد را نشان میدهد که چگونه یک جدول اکسل (ListObject) را به NumPy صادر کنیم:
import aspose.cells as cells
import numpy as np
# فایل اکسل را بارگزاری کنید
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
# جدولی ایجاد کنید که شامل A1:C4 با سرعنوانها باشد.
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)
آرایه NumPy ndarray به دست آمده شامل ردیفها و ستونهای جدول اکسل خواهد بود و اگر هدرها بخشی از دامنه دادهها باشند، شامل آنها نیز خواهد بود.
[['City', 'Region', 'Store'],
['Chicago', 'Central', '3055'],
['New York', 'East', '3036'],
['Detroit', 'Central', '3074']]
چگونه یک ردیف از اکسل را به NumPy تبدیل کنیم
گاهی اوقات شما فقط به دادههای یک ردیف در اکسل نیاز دارید. Aspose.Cells این کار را ساده میکند تا یک ردیف را استخراج کرده و به طور مستقیم به یک ndarray NumPy بارگذاری کنید.
- کتاب کار Excel را بارگذاری کنید.
- برگه را انتخاب کنید.
- شاخص ردیفی را که می خواهید صادر کنید انتخاب کنید.
- مقدارهای ردیف را به عنوان یک آرایه صادر کنید.
- آرایه را به یک ndarray NumPy برای پردازش تبدیل کنید.
کد پایتون زیر نشان میدهد که چگونه یک ردیف از یک شیت اکسل را به ndarray NumPy تبدیل کنیم:
import aspose.cells as cells
import numpy as np
# بارگذاری فایل Excel
workbook = cells.Workbook("sample_data.xlsx")
sheet = workbook.worksheets.get(0)
sheet_cells = sheet.cells
max_col = sheet_cells.max_data_column + 1
# یک ردیف را انتخاب کنید (برای مثال، آخرین ردیف داده)
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)
آرایه NumPy ndarray حاصل یک آرایه یکبعدی خواهد بود که حاوی تمام مقادیر از ردیف انتخاب شده است.
['Detroit' 'Central' 3074]
یک ستون از اکسل را به NumPy تبدیل کنید
در برخی موارد، شما فقط به مقادیر یک ستون از یک برگه اکسل نیاز دارید. Aspose.Cells به شما اجازه میدهد که به راحتی یک ستون را صادر کنید و آن را به یک ndarray NumPy تبدیل کنید.
- کتاب کار Excel را بارگذاری کنید.
- برگه هدف را انتخاب کنید.
- برای صادرات، ایندکس ستون را انتخاب کنید.
- مقدارهای ستوان را خارج کنید.
- مقدارها را به یک ndarray NumPy تبدیل کنید.
کد پایتون زیر نشان میدهد که چگونه یک ستون از یک شیت اکسل را به ndarray NumPy تبدیل کنیم:
import aspose.cells as cells
import numpy as np
# بارگذاری فایل اکسل
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
# یک ستون را انتخاب کنید (مثلاً ستون داده آخر)
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)
آرایه NumPy ndarray نتیجه یک آرایه یکبعدی خواهد بود که تمامی مقادیر از ستون انتخاب شده را شامل میشود.
['Store' 3055 3036 3074]
نکاتی برای کار با Aspose.Cells و NumPy
ملاحظات مربوط به حافظه: تبدیل ورکبوکهای بسیار بزرگ به آرایههای NumPy میتواند حافظه قابل توجهی مصرف کند. ورکشیتها را بهصورت جداگانه پردازش کنید یا در صورت امکان، محدودههای خاصی را بخوانید.
نوع دادهها: اگر صفحهگسترده شما شامل انواع مختلط (رشتهها، اعداد، تاریخها) باشد، هنگام تبدیل لیستها به آرایههای NumPy، dtype=object را مشخص کنید. برای دادههای عددی همگن میتوانید اجازه دهید NumPy نوع را استنباط کند.
مقادیر گمشده: Aspose.Cells برای سلولهای خالی None بازمیگرداند. در مثالهای بالا ما آنها را با رشتههای خالی جایگزین کردیم. شما همچنین میتوانید از np.nan یا یک مقدار نشانهای دیگر بسته به مورد استفاده خود استفاده کنید.
مجوز رایگان بگیرید
آیا میخواهید قدرت کامل Aspose.Cells برای پایتون را کشف کنید؟ شما میتوانید یک مجوز موقت رایگان درخواست کنید. این به شما اجازه میدهد تا همه ویژگیها را بدون محدودیت یا واترمارکهای ارزیابی آزمایش کنید.
با یک مجوز موقت، شما میتوانید:
- با فایلهای بزرگ Excel کار کنید.
- Apply advanced formatting and styling.
- تبدیلات را انجام دهید (مانند تبدیل اکسل به پیدیاف، نُمپای و بیشتر).
این بهترین روش برای ارزیابی عملکرد و سازگاری با پروژههای شما قبل از اتخاذ تصمیم خرید است.
منابع مفید
در اینجا برخی منابع ارزشمند برای کمک به شما در شروع با Aspose.Cells for Python از طریق .NET وجود دارد:
نتیجه گیری
Aspose.Cells for Python از طریق .NET تبدیل دادههای اکسل به آرایههای NumPy را ساده میکند. چه به کل ورکبوک، یک شیت، یک محدوده خاص، یک جدول، یک ردیف یا یک ستون نیاز داشته باشید، این کتابخانه روشهای واضحی برای تکرار در سلولها و ساخت لیستهایی که NumPy میتواند مصرف کند، ارائه میدهد. با ترکیب توانایی Aspose.Cells در خواندن فرمتهای متعدد اسپردشیت با قدرت عددی NumPy، میتوانید دادههای اکسل را به طور یکپارچه در جریانهای داده Python خود ادغام کنید.
اگر هر گونه سوالی دارید، لطفاً در forum رایگان پشتیبانی ما احساس راحتی کنید و ما خوشحال خواهیم شد که کمک کنیم.
