ชนิดข้อมูล 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)) # TrueDecimal สำหรับเงิน
สำหรับสกุลเงิน ให้ใช้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สภาพแวดล้อมเสมือนและ pip
- Jupyter Notebooks สำหรับวิทยาศาสตร์ข้อมูล
- ชนิดข้อมูล Python สำหรับวิทยาศาสตร์ข้อมูล
- การใช้งาน Python REPL และ IPython