0Pricing
Learn AI with Python · บทเรียน

ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล

int, float, complex, bool, str — ความแม่นยำและการเลือกชนิดส่งผลต่อการวิเคราะห์ข้อมูลอย่างไร

ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

ตัวเลขในวิทยาการข้อมูล

Python มีชนิดข้อมูลตัวเลขหลักสองชนิด ได้แก่ int ซึ่งเป็นจำนวนเต็มที่มีความละเอียดตามต้องการ และ float ซึ่งเป็นเลขทศนิยม IEEE 754 ขนาด 64 บิต การเลือกใช้ชนิดที่เหมาะสมช่วยป้องกันข้อบกพร่องของข้อมูลที่สังเกตเห็นได้ยาก

จำนวนเต็มมีความเที่ยงตรงและไม่จำกัดขนาด

จำนวนเต็มของ Python จะไม่เกิดค่าล้น สามารถขยายให้ใหญ่ได้เท่าที่หน่วยความจำอนุญาต จึงเหมาะสำหรับการนับที่ต้องการความเที่ยงตรงและแฟกทอเรียลขนาดใหญ่

big = 2 ** 200
print(big)
print(type(big))   # <class 'int'>

ข้อผิดพลาดด้านความละเอียดของเลขทศนิยม

เลขทศนิยมไม่สามารถแทนเลขฐานสิบทุกค่าได้อย่างเที่ยงตรง ตัวอย่างที่ทำให้ประหลาดใจคือ 0.1 + 0.2 ไม่เท่ากับ 0.3 อย่างพอดี

print(0.1 + 0.2)          # 0.30000000000000004
print(0.1 + 0.2 == 0.3)   # False

การเปรียบเทียบเลขทศนิยมอย่างปลอดภัย

อย่าทดสอบเลขทศนิยมด้วย == ให้ใช้ math.isclose พร้อมค่าความคลาดเคลื่อนแทน

import math
print(math.isclose(0.1 + 0.2, 0.3))  # True

Decimal สำหรับเงิน

สำหรับสกุลเงิน ให้ใช้ decimal.Decimal ซึ่งจัดเก็บค่าในฐานสิบได้อย่างเที่ยงตรง ควรสร้าง Decimal จากสตริงเสมอ ไม่ใช่จากเลขทศนิยม เพื่อหลีกเลี่ยงการสืบทอดข้อผิดพลาดของเลขทศนิยม

from decimal import Decimal
price = Decimal("0.10") + Decimal("0.20")
print(price)   # 0.30

บูลีนเป็นชนิดย่อยของจำนวนเต็ม

ใน Python True มีค่าเท่ากับ 1 และ False มีค่าเท่ากับ 0 จึงสามารถรวมค่าบูลีนเพื่อใช้เป็นจำนวนรายการที่ตรงเงื่อนไขได้

mask = [True, False, True, True]
print(sum(mask))      # 3 matches
print(True + True)    # 2

การนับด้วยค่าบูลีน

พฤติกรรมที่ค่าบูลีนทำงานเสมือนจำนวนเต็มนี้พบได้ทั่วไปใน NumPy และ pandas การรวมมาสก์บูลีนจะนับจำนวนแถวที่ตรงตามเงื่อนไข

ages = [12, 20, 35, 17, 40]
adults = sum(a >= 18 for a in ages)
print(adults)   # 3

การตรวจสอบชนิดข้อมูลด้วย type()

type(x) ส่งคืนคลาสที่แน่นอนของค่า ซึ่งมีประโยชน์เมื่อคอลัมน์หนึ่งมีสตริงแทนที่จะเป็นตัวเลขโดยไม่คาดคิด

print(type(5))      # <class 'int'>
print(type(5.0))    # <class 'float'>
print(type("5"))    # <class 'str'>

การตรวจสอบชนิดข้อมูลด้วย isinstance()

ควรใช้ isinstance แทน type == เพราะรองรับการสืบทอด โปรดทราบว่าค่าบูลีนจะผ่านการตรวจสอบว่าเป็นจำนวนเต็ม

print(isinstance(5, int))        # True
print(isinstance(True, int))     # True (bool subclasses int)
print(isinstance(5.0, (int, float)))  # True

ข้อควรระวังในการบังคับชนิดข้อมูล

การผสมชนิดข้อมูลจะทำให้เกิดการบังคับชนิดโดยไม่แจ้งเตือน การหารจำนวนเต็มด้วยเลขทศนิยมจะให้ผลเป็นเลขทศนิยม ส่วนการนำตัวเลขมาต่อกับสตริงจะทำให้เกิด TypeError ควรทำความสะอาดชนิดข้อมูลตั้งแต่เนิ่น ๆ

print(5 / 2)        # 2.5  (true division always float)
print(5 // 2)       # 2    (floor division)
# "id-" + 5         # TypeError
print("id-" + str(5))  # id-5

ความประหลาดใจของเลขทศนิยมในการรวมค่า

การรวมเลขทศนิยมจำนวนมากจะสะสมข้อผิดพลาดเล็ก ๆ น้อย ๆ สำหรับชุดข้อมูลขนาดใหญ่ ควรใช้ NumPy ซึ่งใช้การรวมแบบจับคู่เพื่อลดการคลาดเคลื่อน

vals = [0.1] * 10
print(sum(vals))    # 0.9999999999999999
# NumPy: np.sum(vals) is more numerically stable

ตรวจสอบอย่างรวดเร็ว

ทดสอบความเข้าใจเรื่องชนิดข้อมูลของ Python

ทบทวน

ข้อเท็จจริงสำคัญเกี่ยวกับตัวเลขสำหรับการทำงานกับข้อมูล:

  • int มีความเที่ยงตรงและไม่จำกัดขนาด
  • float เป็นค่าประมาณ ให้ใช้ math.isclose แทน ==
  • ใช้ Decimal("...") สำหรับเงิน
  • bool เป็นจำนวนเต็ม: sum(mask) ใช้นับจำนวนได้
  • type() แสดงคลาส ส่วน isinstance() รองรับการสืบทอด
  • ระวังการบังคับชนิดโดยไม่แจ้งเตือนในการหารและการต่อข้อความ

คำถามที่พบบ่อย

บทเรียน “ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล”

int, float, complex, bool, str — ความแม่นยำและการเลือกชนิดส่งผลต่อการวิเคราะห์ข้อมูลอย่างไร คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สภาพแวดล้อมเสมือนและ pip
  2. Jupyter Notebooks สำหรับวิทยาศาสตร์ข้อมูล
  3. ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล
  4. การใช้งาน Python REPL และ IPython
← กลับไปที่ Learn AI with Python