العمل مع بيانات Excel في Python أمر شائع. غالبًا ما ينطوي على نقل البيانات من Excel إلى شكل يمكن التلاعب به بكفاءة. يمكن أن يكون تحويل بيانات Excel إلى تنسيق جاهز للتحليل معقدًا. في هذه المدونة، ستتعلم كيفية تحويل Excel إلى مصفوفات NumPy في بضع سطور من الكود.

لماذا NumPy؟

NumPy (Python العددي) هي مكتبة بايثون مفتوحة المصدر. إنها العمود الفقري لعلوم البيانات وتعلم الآلة في بايثون. يوفر NumPy عمليات مصفوفات سريعة وحوسبة عددية فعالة. إنه يعمل بسلاسة مع pandas و TensorFlow و scikit-learn. تدعم المكتبة المصفوفات متعددة الأبعاد والمصفوفات والجبر الخطي وتحويلات فورييه. تستخدم المصفوفات ذاكرة متجاورة، مما يجعلها أسرع من قوائم بايثون. تجعل هذه السرعة NumPy أداة أساسية للحوسبة العلمية وتحليل البيانات.

يُستخدم Excel على نطاق واسع لتخزين مجموعات البيانات، ولكنه غير مُحسَّن لتدفقات العمل في بايثون. تتطلب طرق التحويل التقليدية غالبًا مكتبات إضافية، وخطوات متعددة، وتحليل يدوي. يتيح لك Aspose.Cells تصدير البيانات من Excel ، TSV ، CSV ، و JSON مباشرةً إلى مصفوفات NumPy. هذا يربط جداول البيانات بأدوات بايثون العددية.

What is Aspose.Cells for Python?

Aspose.Cells هي أفضل مكتبة إكسل لـ Python للمطورين. إنها تسمح بقراءة وإنشاء ومعالجة جداول البيانات دون الاعتماد على Microsoft Excel. النسخة المستخدمة مع Python عبر .NET تتضمن نسخة .NET من Aspose.Cells وتكشفها لـ Python. تسهل Aspose.Cells عملية تحويل Excel إلى NumPy. إنها تتيح لك تصدير دفتر عمل كامل، أو ورقة عمل، أو نطاق، أو صف، أو عمود، أو حتى كائن قائمة مباشرة إلى مصفوفات NumPy. وهذا يعني أنه يمكنك الانتقال من ملفات Excel الخام إلى بيانات نظيفة جاهزة للاستخدام والتحليل أو التعلم الآلي مع الحد الأدنى من الجهد.

يمكنك تثبيته من PyPI:

pip install aspose‑cells‑python

بمجرد التثبيت، قم باستيراد المكتبة جنبًا إلى جنب مع NumPy:

import aspose.cells as cells
import numpy as np

كيفية تحويل دفتر عمل Excel إلى NumPy

قد يحتوي مصنف على أوراق عمل متعددة. يمكنك تصدير مصنف Excel كامل إلى مصفوفة NumPy (ndarray) دفعة واحدة. هذا مفيد عندما تريد معالجة البيانات من جميع الأوراق مباشرة في Python.

اتبع الخطوات أدناه لتحويل مصنف Excel إلى مصفوفة NumPy ndarray:

  1. قم بتحميل دفتر العمل Excel باستخدام فئة Workbook.
  2. الوصول إلى جميع أوراق العمل من دفتر العمل.
  3. قم بتكرار كل ورقة عمل لقراءة الصفوف والأعمدة المستخدمة فيها.
  4. استخراج قيم الخلايا صفًا بصف.
  5. قم بتخزين بيانات كل ورقة في قائمة من القوائم.
  6. قم بتحويل البيانات المجمعة إلى مصفوفة NumPy باستخدام np.asarray().

إليك نص برمجي مبسط بلغة بايثون يقوم بتصدير دفتر عمل تجريبي:

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)
كيفية تحويل ملف Excel إلى NumPy

كيفية تحويل دفتر عمل Excel إلى NumPy

يستبدل هذا البرنامج النصي أي خلايا فارغة بسلاسل فارغة ويجمع جميع أوراق العمل في مصفوفة واحدة من 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

في بعض الأحيان، قد ترغب في العمل مع ورقة عمل واحدة بدلاً من دفتر العمل بالكامل. يمكنك استخراج قيم الخلايا من ورقة عمل واحدة مباشرة وتحويلها إلى مصفوفة NumPy ndarray عن طريق اتباع الخطوات أدناه:

  1. قم بتحميل ملف Excel باستخدام فئة Workbook.
  2. الوصول إلى ورقة العمل المستهدفة بواسطة فهرسها.
  3. احصل على أقصى عدد من الصفوف والأعمدة المستخدمة.
  4. تكرار لكل صف وعمود لجمع قيم الخلايا.
  5. قم بتخزين البيانات المستخرجة في قائمة.
  6. قم بتحويل القائمة إلى مصفوفة NumPy باستخدام np.asarray().

إليك نص البرمجة بلغة بايثون الذي يصدر ورقة عمل واحدة:

import aspose.cells as cells
import numpy as np

# load workbook
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)

# convert to numpy ndarray
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)

هذا ينشئ مصفوفة ndarray ثنائية الأبعاد حيث تمثل الصفوف صفوف Excel وتمثل الأعمدة أعمدة Excel.

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

كيفية تحويل نطاق من Excel إلى NumPy

في حالات معينة، تحتاج فقط إلى نطاق محدد من الخلايا. تتيح لك Aspose.Cells تعريف نطاق وتصديره مباشرةً إلى مصفوفة NumPy ndarray.

اتبع الخطوات أدناه:

  1. قم بتحميل دفتر العمل باستخدام فئة Workbook.
  2. اختر ورقة العمل المستهدفة.
  3. قم بتعريف نطاق باستخدام طريقة worksheet.cells.createrange().
  4. قم بالمرور عبر الصفوف والأعمدة في النطاق لاستخراج القيم.
  5. قم بتحويل القيم إلى مصفوفة NumPy باستخدام np.asarray().

يوضح مثال الشيفرة التالي كيفية تحويل مدى من الخلايا من Excel إلى مصفوفة NumPy ndarray:

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")

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

# تحويل إلى مصفوفة ndarrray باستخدام numpy
range_array = np.asarray(range_data, dtype=object)
print(range_array)

إذا كان النطاق المحدد يغطي عمودين وثلاثة صفوف، فإن المصفوفة الناتجة ستكون 3×2، مثل:

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

تحويل جدول Excel (قائمة كائن) إلى NumPy

جدول Excel هو مجموعة منظمة من البيانات مع رؤوس وصفوف. في Aspose.Cells، يتم تمثيل ذلك كـ ListObject. يمكنك بسهولة تصدير محتويات جدول Excel إلى مصفوفة NumPy ndarray لمزيد من المعالجة في Python.

  1. قم بتحميل دفتر العمل واختر ورقة العمل.
  2. قم بالوصول إلى ListObject (جدول Excel) من ورقة العمل.
  3. تصدير بيانات الجدول إلى مصفوفة ثنائية الأبعاد.
  4. قم بتحويل المصفوفة إلى مصفوفة NumPy ndarray.
  5. استخدم ndarray لعمليات علم البيانات أو تعلم الآلة.

يظهر المثال البرمجي التالي كيفية تصدير جدول Excel (ListObject) إلى NumPy:

import aspose.cells as cells
import numpy as np

# تحميل ملف Excel
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 الناتجة على الصفوف والأعمدة من جدول Excel، بما في ذلك رؤوس الأعمدة إذا كانت جزءًا من نطاق البيانات.

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

كيفية تحويل صف من إكسل إلى NumPy

أحياناً تحتاج فقط إلى بيانات من صف واحد في Excel. تسهل Aspose.Cells استخراج صف واحد وتحميله مباشرةً في مصفوفة NumPy ndarray.

  1. تحميل مصنف إكسل.
  2. اختر ورقة العمل.
  3. اختر فهرس الصف الذي تريد تصديره.
  4. قم بتصدير قيم الصف كصفيف.
  5. قم بتحويل المصفوفة إلى ndarray من NumPy للمعالجة.

الكود التالي بلغة بايثون يظهر كيفية تحويل صف من ورقة Excel إلى مصفوفة NumPy ndarray:

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

في بعض الحالات، قد تحتاج فقط إلى قيم من عمود واحد في ورقة Excel. يتيح لك Aspose.Cells تصدير عمود بسهولة وتحويله إلى مصفوفة NumPy ndarray.

  1. تحميل مصنف إكسل.
  2. اختر ورقة العمل المستهدفة.
  3. اختر فهرس العمود للتصدير.
  4. قم بتصدير قيم الأعمدة.
  5. قم بتحويل القيم إلى مصفوفة 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 الناتجة مصفوفة أحادية الأبعاد تحتوي على جميع القيم من العمود المحدد.

['Store' 3055 3036 3074]

نصائح للعمل مع Aspose.Cells و NumPy

  • اعتبارات الذاكرة: يمكن أن يؤدي تحويل دفاتر العمل الكبيرة جدًا إلى مصفوفات NumPy إلى استهلاك ذاكرة كبيرة. معالجة أوراق العمل بشكل فردي أو قراءة نطاقات محددة إذا كان ذلك ممكنًا.

  • أنواع البيانات: إذا كانت ورقة العمل الخاصة بك تحتوي على أنواع مختلطة (سلاسل، أرقام، تواريخ)، حدد dtype=object عند تحويل القوائم إلى مصفوفات NumPy. بالنسبة للبيانات العددية المتجانسة، يمكنك ترك NumPy يستنتج النوع.

  • القيم المفقودة: توفر Aspose.Cells قيمة None للخلايا الفارغة. في الأمثلة أعلاه، استبدلناها بالسلاسل الفارغة. يمكنك أيضًا استبدالها بـ np.nan أو قيمة إرشادية أخرى حسب استخدامك.

احصل على ترخيص مجاني

هل ترغب في استكشاف القوة الكاملة لـ Aspose.Cells for Python؟ يمكنك طلب ترخيص مؤقت مجاني.هذا يتيح لك اختبار جميع الميزات دون قيود أو علامات مائية للتقييم.

مع رخصة مؤقتة، يمكنك:

  • عمل مع ملفات Excel كبيرة.
  • Apply advanced formatting and styling.
  • قم بإجراء التحويلات (مثل، Excel إلى PDF، NumPy، وغيرها).

إنها أفضل طريقة لتقييم الأداء والتوافق مع مشاريعك قبل اتخاذ قرار الشراء.

موارد مفيدة

إليك بعض الموارد القيمة لمساعدتك في البدء مع Aspose.Cells for Python عبر .NET:

استنتاج

Aspose.Cells for Python via .NET تبسط تحويل بيانات Excel إلى مصفوفات NumPy. سواء كنت تحتاج إلى مصنف كامل، أو ورقة واحدة، أو نطاق محدد، أو جدول، أو صف، أو عمود، توفر المكتبة طرقاً واضحة للتكرار عبر الخلايا وبناء قوائم يمكن أن تستهلكها NumPy. من خلال الجمع بين قدرة Aspose.Cells على قراءة العديد من تنسيقات الجداول مع القوة العددية لـ NumPy، يمكنك دمج بيانات Excel بسلاسة في خطوط بيانات Python الخاصة بك.

إذا كان لديك أي أسئلة، فلا تتردد في طرحها في منتدانا free support forum وسنكون سعداء بمساعدتك.

انظر أيضًا