Pandas และ NumPy สองเครื่องมือทรงพลังสำหรับวิเคราะห์ข้อมูล

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
opj
PHP Hero Member
PHP Hero Member
โพสต์: 195
ลงทะเบียนเมื่อ: 16/12/2024 9:05 am

Pandas และ NumPy สองเครื่องมือทรงพลังสำหรับวิเคราะห์ข้อมูล

โพสต์ที่ยังไม่ได้อ่าน โดย opj »

NumPy และ Pandas เป็นเครื่องมือที่ทรงพลังสำหรับการวิเคราะห์ข้อมูลใน Python โดยเฉพาะสำหรับงานด้าน Data Science และ Machine Learning
NumPy ช่วยในการคำนวณตัวเลขและการจัดการข้อมูลในรูปแบบ Array ที่สามารถทำงานได้เร็วกว่า Python list ทั่วไป โดยรองรับการคำนวณทางคณิตศาสตร์ที่ซับซ้อน เช่น เมทริกซ์และเวกเตอร์
Pandas ช่วยจัดการข้อมูลในรูปแบบ DataFrame หรือ Series ซึ่งเหมาะกับการจัดการข้อมูลตาราง การทำความสะอาดข้อมูล และการวิเคราะห์ข้อมูลเชิงลึก รองรับการนำเข้าและส่งออกข้อมูลจากหลายแหล่ง เช่น CSV, Excel, SQL
ทั้งสองเครื่องมือสามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพ โดย Pandas ใช้สำหรับการจัดการข้อมูล และ NumPy ใช้สำหรับการคำนวณที่รวดเร็ว ทำให้การวิเคราะห์ข้อมูลเป็นไปได้อย่างรวดเร็วและมีประสิทธิภาพ
  1. NumPy (Numerical Python)
    NumPy เป็นไลบรารีที่ออกแบบมาสำหรับการคำนวณตัวเลขประสิทธิภาพสูง โดยเน้นการทำงานกับ Array (ndarray) ที่สามารถจัดการข้อมูลตัวเลขแบบหลายมิติได้
    คุณสมบัติเด่นของ NumPy
    • ndarray (N-dimensional array)
      • NumPy ใช้ ndarray ซึ่งเป็นโครงสร้างข้อมูลหลักในการจัดเก็บข้อมูลหลายมิติ เช่น เวกเตอร์ (1 มิติ) เมทริกซ์ (2 มิติ) หรือเทนเซอร์ (3 มิติหรือมากกว่า) ที่สามารถคำนวณได้เร็วและมีประสิทธิภาพสูง
      • ทำงานได้เร็วกว่าการใช้ Python list เนื่องจาก NumPy ใช้การดำเนินการทางคณิตศาสตร์ในลักษณะ Vectorized Operations ทำให้การคำนวณต่าง ๆ สามารถทำได้ในลักษณะ batch โดยไม่ต้องใช้ loop
      • รองรับการทำงานกับข้อมูลในหลายมิติ เช่น การคำนวณทางสถิติ หรือการทำงานกับข้อมูลทางวิทยาศาสตร์ที่มีหลายมิติ
    • ฟังก์ชันทางคณิตศาสตร์
      • NumPy รองรับการคำนวณทางคณิตศาสตร์หลายรูปแบบ เช่น การบวก, ลบ, คูณ, หาร, ฟังก์ชันทางตรีโกณมิติ, การหาค่าเฉลี่ย, ค่าสูงสุด, ค่าต่ำสุด, ค่าเบี่ยงเบนมาตรฐาน ฯลฯ
      • ฟังก์ชันที่สามารถใช้ใน matrix operations เช่น การคูณเมทริกซ์, การหาค่า inverse ของเมทริกซ์, ดีเทอร์มิแนนต์ (determinant) และการหาค่าของ eigenvalues
    • การแปลงข้อมูล
      • การแปลงข้อมูลระหว่าง List และ Array สามารถทำได้ง่าย
      • รองรับการแปลงข้อมูลจาก Python list ไปเป็น ndarray และสามารถแปลงจาก ndarray ไปเป็น Python list ได้
    • การสุ่มข้อมูล (Random)
      • NumPy รองรับการสร้างข้อมูลสุ่ม เช่น การสุ่มตัวเลขจากการกระจายต่าง ๆ เช่น Uniform Distribution, Normal Distribution, หรือ Binomial Distribution
    ตัวอย่างการใช้งาน

    โค้ด: เลือกทั้งหมด

    import pandas as pd
    
    # สร้าง DataFrame
    data = {
        'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']
    }
    df = pd.DataFrame(data)
    
    # การกรองข้อมูล
    filtered_df = df[df['Age'] > 25]
    print(filtered_df)
    
    # การคำนวณสถิติพื้นฐาน
    print(df.describe())  # ค่าเฉลี่ย ค่าสูงสุด
    
    # การจัดการข้อมูลเวลา
    df['Date'] = pd.to_datetime(['2023-01-01', '2023-02-01', '2023-03-01'])
    
    ผลลัพธ์ตามภาพด้านล่าง
    numpy.png
    numpy.png (19.5 KiB) Viewed 876 times
  2. Pandas
    Pandas เป็นไลบรารีที่ออกแบบมาสำหรับ การจัดการและวิเคราะห์ข้อมูล โดยเฉพาะการทำงานกับข้อมูลแบบ ตาราง (DataFrame) และ ซีรีส์ (Series) ที่มีความยืดหยุ่นสูง
    คุณสมบัติเด่นของ Pandas
    • DataFrame
      • DataFrame คือ โครงสร้างข้อมูลที่มีลักษณะเป็นตาราง ซึ่งประกอบด้วยแถวและคอลัมน์ (เหมือนกับตารางใน Excel หรือฐานข้อมูล SQL)
      • สามารถใช้กับข้อมูลที่มีหลายประเภท เช่น ข้อความ (String), ตัวเลข (Numeric), วันที่ (Datetime)
      • รองรับการทำงานกับข้อมูลที่มี missing values ได้ดี
    • Series
      • Series คือ ข้อมูลที่จัดเก็บในรูปแบบ 1 มิติ เช่น List หรือ Array โดยที่มี index แนบมาด้วย
      • Series สามารถเก็บข้อมูลได้หลากหลายประเภท เช่น ตัวเลข, ข้อความ, เวลา
    • การทำความสะอาดข้อมูล
      • Pandas รองรับฟังก์ชันต่าง ๆ ที่ช่วยในการทำความสะอาดข้อมูล เช่น การกรองข้อมูล (Filtering), การเติมค่าที่หายไป (Missing Values), การเปลี่ยนแปลงข้อมูล (Data Transformation)
      • สามารถจัดการกับข้อมูลที่มีการขาดหายหรือข้อมูลที่ผิดปกติ (Outliers) ได้ง่าย
      • ฟังก์ชัน fillna(), dropna(), และ replace() เป็นฟังก์ชันที่ช่วยในการจัดการกับค่าที่ขาดหาย
    • การวิเคราะห์ข้อมูล
      • Pandas รองรับการทำ GroupBy ซึ่งช่วยในการจัดกลุ่มข้อมูลตามเงื่อนไขที่ต้องการ และคำนวณสถิติที่สำคัญ เช่น ค่าเฉลี่ย (Mean), ค่ามากที่สุด (Max), ค่าน้อยที่สุด (Min) ฯลฯ
      • ฟังก์ชัน pivot_table() ใช้สำหรับการสรุปข้อมูลในลักษณะตาราง โดยการจัดกลุ่มข้อมูลตามมิติที่เลือก
    • การจัดการข้อมูลเวลา (Time Series)
      • Pandas มีฟังก์ชันที่รองรับการจัดการข้อมูลที่มีวันที่และเวลาอย่างมีประสิทธิภาพ เช่น การกรองข้อมูลตามช่วงเวลา, การแปลงข้อมูลที่เกี่ยวข้องกับเวลา, และการคำนวณทางสถิติที่เกี่ยวข้องกับเวลา
    • การเชื่อมโยงข้อมูล
      • Pandas รองรับการ Join หรือ Merge ข้อมูลจากหลายแหล่ง เช่น การรวมข้อมูลจากหลาย DataFrame หรือการเชื่อมโยงข้อมูลจากหลายไฟล์
    ตัวอย่างการใช้งาน

    โค้ด: เลือกทั้งหมด

    import pandas as pd
    import numpy as np
    
    # สร้าง DataFrame
    df = pd.DataFrame({
        'A': [1, 2, 3],
        'B': [4, 5, 6]
    })
    
    # ใช้ NumPy สำหรับคำนวณใน DataFrame
    df['C'] = np.sqrt(df['A'] ** 2 + df['B'] ** 2)
    
    ผลลัพธ์ตามภาพด้านล่าง
    pandas.png
    pandas.png (25.18 KiB) Viewed 876 times

สรุป
NumPy และ Pandas เป็นเครื่องมือสำคัญสำหรับการวิเคราะห์ข้อมูล NumPy เหมาะสำหรับการคำนวณตัวเลขที่มีประสิทธิภาพ เช่น การจัดการเมทริกซ์และเวกเตอร์ในงานวิทยาศาสตร์, การประมวลผลภาพ และ Machine Learning ส่วน Pandas เหมาะสำหรับการจัดการข้อมูลในรูปแบบตาราง เช่น การทำความสะอาดข้อมูล, การวิเคราะห์ข้อมูลเชิงเวลา, และการเชื่อมโยงข้อมูลจากหลายแหล่ง การใช้งานร่วมกันช่วยเพิ่มประสิทธิภาพในการจัดการและวิเคราะห์ข้อมูลขนาดใหญ่ เหมาะสำหรับงานด้านธุรกิจ, การวิจัย, และการพัฒนาระบบ Machine Learning ทำให้สามารถต่อยอดไปยังสาขาอื่นได้หลากหลาย


อ้างอิง
https://www.kaggle.com/code/ratthachat/python-numpy-deep-learning
https://prangsirin.medium.com/ทำความรู้จักกับ-python-numpy-library-9bc8c3a312af
https://datarockie.com/blog/basic-python-pandas/
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 7