การทำงานกับข้อมูล Excel ใน Python เป็นเรื่องที่พบได้บ่อย มักจะเกี่ยวข้องกับการย้ายข้อมูลจาก Excel ไปยังรูปแบบที่สามารถจัดการได้อย่างมีประสิทธิภาพ การแปลงข้อมูล Excel ให้อยู่ในรูปแบบที่พร้อมสำหรับการวิเคราะห์อาจเป็นเรื่องยาก ในโพสต์บล็อกนี้ คุณจะได้เรียนรู้วิธีการแปลง Excel เป็นอาเรย์ NumPy ในเพียงไม่กี่บรรทัดของโค้ด

ทำไม NumPy?

NumPy (Numerical Python) เป็นไลบรารี Python แบบโอเพนซอร์ส มันเป็นกระดูกสันหลังของวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่องใน Python NumPy ให้การดำเนินการอาร์เรย์ที่รวดเร็วและการคอมพิวเตอร์เชิงตัวเลขที่มีประสิทธิภาพ มันทำงานร่วมกับ pandas, TensorFlow, และ scikit-learn ได้อย่างราบรื่น ไลบรารีสนับสนุนอาร์เรย์หลายมิติ, เมทริกซ์, พีชคณิตเชิงเส้น, และการแปลงฟูเรียร์ อาร์เรย์ใช้หน่วยความจำติดต่อกัน ทำให้มันรวดเร็วกว่ารายการ Python ความเร็วนี้ทำให้ NumPy เป็นเครื่องมือหลักสำหรับการคอมพิวเตอร์เชิงวิทยาศาสตร์และการวิเคราะห์ข้อมูล

Excel เป็นเครื่องมือที่ใช้กันอย่างแพร่หลายในการจัดเก็บชุดข้อมูล แต่ไม่ได้ถูกปรับให้เหมาะสมสำหรับกระบวนการทำงานของ Python วิธีการแปลงแบบดั้งเดิมมักต้องการไลบรารีเพิ่มเติม หลายขั้นตอน และการแยกวิเคราะห์ด้วยตนเอง Aspose.Cells ช่วยให้คุณสามารถส่งออกข้อมูลจาก Excel, TSV, CSV และ JSON ไปยังอาร์เรย์ NumPy ได้โดยตรง สิ่งนี้เชื่อมโยงสเปรดชีตกับเครื่องมือทางคณิตศาสตร์ของ Python

What is Aspose.Cells for Python?

Aspose.Cells เป็น ไลบรารี Excel ที่ดีที่สุดสำหรับนักพัฒนา Python ซึ่งช่วยให้สามารถอ่าน สร้าง และจัดการสเปรดชีตได้โดยไม่ต้องพึ่งพา Microsoft Excel เวอร์ชัน Python ผ่าน .NET จะฝังเวอร์ชัน .NET ของ Aspose.Cells และเปิดเผยให้กับ Python Aspose.Cells ทำให้กระบวนการแปลง Excel เป็น NumPy ง่ายขึ้น มันช่วยให้คุณสามารถส่งออกทั้งเวิร์กบุ๊ก แผ่นงาน ช่วง แถว คอลัมน์ หรือแม้แต่วัตถุรายการโดยตรงเข้าสู่ NumPy ndarrays สิ่งนี้หมายความว่าคุณสามารถย้ายจากไฟล์ Excel ดิบไปยังข้อมูลที่สะอาดและพร้อมใช้งานสำหรับการวิเคราะห์หรือการเรียนรู้ของเครื่องด้วยความพยายามที่น้อยที่สุด

คุณสามารถติดตั้งมันจาก PyPI:

pip install aspose‑cells‑python

เมื่อติดตั้งแล้ว ให้นำเข้าห้องสมุดพร้อมกับ NumPy:

import aspose.cells as cells
import numpy as np

วิธีแปลง Excel Workbook เป็น NumPy

สมุดงานอาจประกอบด้วยหลายแผ่นงาน คุณสามารถส่งออกสมุดงาน Excel ทั้งหมดไปยัง NumPy ndarray ได้ในครั้งเดียว นี่เป็นสิ่งที่สะดวกเมื่อคุณต้องการประมวลผลข้อมูลจากแผ่นงานทั้งหมดโดยตรงใน Python

ทำตามขั้นตอนด้านล่างเพื่อแปลงไฟล์ Excel workbook เป็น NumPy ndarray:

  1. โหลดสมุดงาน Excel โดยใช้คลาส Workbook
  2. เข้าถึงแผ่นงานทั้งหมดจากเวิร์กบุ๊ค。
  3. ผ่านทุกแผ่นงานเพื่ออ่านแถวและคอลัมน์ที่ใช้
  4. แยกค่าเซลล์ทีละแถว
  5. เก็บข้อมูลจากแต่ละแผ่นลงในรายการของรายการ
  6. แปลงข้อมูลที่เก็บได้เป็น NumPy ndarray โดยใช้ np.asarray()

นี่คือสคริปต์ Python ที่ง่ายซึ่งส่งออกสมุดงานตัวอย่าง:

import aspose.cells as cells
import numpy as np

# โหลดสมุดงาน
workbook = cells.Workbook("sample_data.xlsx")
sheets = workbook.worksheets

# เตรียมรายการว่างเพื่อเก็บข้อมูลแผ่นงาน
sheets_data = []

# loop through worksheets
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 เพื่อรักษา string ไว้
excel_array = np.asarray(sheets_data, dtype=object)
print(excel_array)
วิธีการแปลงไฟล์ Excel Workbook เป็น NumPy

วิธีแปลงไฟล์ Excel Workbook เป็น 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 ndarray ด้วย np.asarray()

นี่คือสคริปต์ Python ที่ส่งออกแผ่นงานเดียว:

import aspose.cells as cells
import numpy as np

# โหลดสมุดงาน
workbook = cells.Workbook("sample_data.xlsx")

# เข้าถึงแผ่นงานแรก
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)

# แปลงให้เป็น numpy ndarray
worksheet_array = np.asarray(rows, dtype=object)
print(worksheet_array)

นี่สร้าง ndarray 2 มิติที่แถวจับคู่กับแถวใน 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. แปลงค่าต่าง ๆ เป็น ndarray ของ 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)

# แปลงเป็น ndarray ของ numpy
range_array = np.asarray(range_data, dtype=object)
print(range_array)

หากช่วงที่เลือกครอบคลุมสองคอลัมน์และสามแถว อาร์เรย์ที่ได้จะเป็น 3×2 เช่น:

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

แปลงตาราง Excel (ListObject) เป็น 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)

ndarray ของ NumPy ที่ได้จะประกอบด้วยแถวและคอลัมน์ของตาราง Excel รวมถึงหัวเรื่องหากเป็นส่วนหนึ่งของช่วงข้อมูล

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

วิธีการแปลงแถวของ Excel เป็น NumPy

บางครั้งคุณต้องการข้อมูลจากแถวเดียวใน Excel โดย Aspose.Cells ทำให้การดึงข้อมูลแถวเดียวและโหลดลงใน NumPy ndarray เป็นเรื่องง่าย

  1. โหลดสมุดงาน Excel.
  2. เลือกแผ่นงาน。
  3. เลือกดัชนแถวที่คุณต้องการส่งออกค่ะ
  4. ส่งออกรายค่าต่าง ๆ เป็นอาเรย์。
  5. แปลงอาร์เรย์เป็น NumPy ndarray สำหรับการประมวลผล

โค้ด Python ต่อไปนี้แสดงวิธีการแปลงแถวของแผ่นงาน 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]

แปลงคอลัมน์ของ Excel เป็น NumPy

ในบางกรณี คุณอาจต้องการค่าจากคอลัมน์เดียวเท่านั้นในแผ่นงาน Excel Aspose.Cells ช่วยให้คุณส่งออกคอลัมน์ได้ง่ายและแปลงเป็น ndarray ของ NumPy

  1. โหลดสมุดงาน Excel.
  2. เลือกแผ่นงานเป้าหมาย。
  3. เลือกดัชนีคอลัมน์เพื่อส่งออก
  4. ส่งออกค่าของคอลัมน์
  5. แปลงค่าเป็น NumPy ndarray。

โค้ด Python ต่อไปนี้แสดงวิธีการแปลงคอลัมน์ในแผ่นงาน Excel เป็น NumPy ndarray:

import aspose.cells as cells
import numpy as np

# โหลดไฟล์ 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

# เลือกคอลัมน์ (เช่น คอลัมน์ข้อมูลสุดท้าย)
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 อาจใช้หน่วยความจำมาก โปรดประมวลผลแผ่นงานทีละแผ่นหรือตอ่านช่วงเฉพาะหากเป็นไปได้

  • ประเภทข้อมูล: หากสเปรดชีตของคุณมีประเภทผสม (สตริง, ตัวเลข, วันที่) ให้ระบุ dtype=object เมื่อเปลี่ยนรายการเป็นอาเรย์ NumPy สำหรับข้อมูลตัวเลขที่เป็นเนื้อเดียวกันคุณสามารถให้ NumPy สรุปประเภทได้

  • ค่าที่ขาดหายไป: Aspose.Cells คืนค่า None สำหรับเซลล์ที่ว่าง ในตัวอย่างข้างต้นเราได้แทนที่พวกเขาด้วยสตริงว่าง คุณยังสามารถแทนที่ด้วย np.nan หรือค่าตัวแทนอื่น ๆ ขึ้นอยู่กับกรณีการใช้งานของคุณ

ขอรับใบอนุญาตฟรี

คุณต้องการสำรวจพลังเต็มรูปแบบของ Aspose.Cells for Python หรือไม่? คุณสามารถขอ free temporary license ได้ ซึ่งจะช่วยให้คุณทดสอบฟีเจอร์ทั้งหมดโดยไม่มีข้อจำกัดหรือแบรนด์น้ำประเมินผล.

ด้วยใบอนุญาตชั่วคราว คุณสามารถ:

  • ทำงานกับไฟล์ Excel ขนาดใหญ่
  • Apply advanced formatting and styling.
  • ดำเนินการแปลง (เช่น Excel เป็น PDF, NumPy และอื่น ๆ)

มันเป็นวิธีที่ดีที่สุดในการประเมินประสิทธิภาพและความเข้ากันได้กับโครงการของคุณก่อนที่จะทำการตัดสินใจซื้อ。

แหล่งข้อมูลที่มีประโยชน์

นี่คือทรัพยากรอันมีค่าเพื่อช่วยให้คุณเริ่มต้นกับ Aspose.Cells for Python ผ่าน .NET:

บทสรุป

Aspose.Cells for Python ผ่าน .NET ทำให้การแปลงข้อมูล Excel เป็น NumPy arrays ง่ายขึ้น ไม่ว่าคุณจะต้องการทั้งสมุดงาน แผ่นงานเดียว ช่วงเฉพาะ ตาราง แถว หรือคอลัมน์ ไลบรารีนี้มีวิธีการที่ชัดเจนในการวนรอบเซลล์และสร้างรายการที่ NumPy สามารถใช้ได้ โดยการรวมความสามารถของ Aspose.Cells ในการอ่านฟอร์แมตสเปรดชีตหลายรูปแบบเข้ากับพลังทางตัวเลขของ NumPy คุณสามารถรวมข้อมูล Excel เข้ากับท่อข้อมูล Python ของคุณได้อย่างราบรื่น

หากคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะถามที่ free support forum ของเรา และเรายินดีที่จะช่วยเหลือ。

ดูเพิ่มเติม