NumPy ช่วยในการคำนวณตัวเลขและการจัดการข้อมูลในรูปแบบ Array ที่สามารถทำงานได้เร็วกว่า Python list ทั่วไป โดยรองรับการคำนวณทางคณิตศาสตร์ที่ซับซ้อน เช่น เมทริกซ์และเวกเตอร์
Pandas ช่วยจัดการข้อมูลในรูปแบบ DataFrame หรือ Series ซึ่งเหมาะกับการจัดการข้อมูลตาราง การทำความสะอาดข้อมูล และการวิเคราะห์ข้อมูลเชิงลึก รองรับการนำเข้าและส่งออกข้อมูลจากหลายแหล่ง เช่น CSV, Excel, SQL
ทั้งสองเครื่องมือสามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพ โดย Pandas ใช้สำหรับการจัดการข้อมูล และ NumPy ใช้สำหรับการคำนวณที่รวดเร็ว ทำให้การวิเคราะห์ข้อมูลเป็นไปได้อย่างรวดเร็วและมีประสิทธิภาพ
- 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'])
- ndarray (N-dimensional array)
- 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)
- DataFrame
สรุป
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/