อาร์เรย์ NumPy และ dtypes
สร้าง ndarray ทำความเข้าใจ dtypes และสำรวจคุณสมบัติของอาร์เรย์
อาร์เรย์ NumPy และ dtypes เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
NumPy คืออะไร
NumPy มี ndarray ซึ่งเป็นอาร์เรย์ที่มีชนิดข้อมูลตายตัวและใช้หน่วยความจำต่อเนื่อง รองรับการดำเนินการแบบเวกเตอร์ที่เร็วกว่าอาร์เรย์ของ Python หลายระดับขนาด
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5]
print(arr * 2) # [ 2 4 6 8 10] (no Python loop)การสร้างอาร์เรย์
ฟังก์ชันสำหรับสร้างอาร์เรย์ที่ใช้บ่อย ได้แก่ np.array(), np.zeros(), np.ones(), np.arange(), np.linspace()
import numpy as np
print(np.zeros((2, 3))) # 2x3 array of 0.0
print(np.ones(5)) # [1. 1. 1. 1. 1.]
print(np.arange(0, 10, 2)) # [0 2 4 6 8]
print(np.linspace(0, 1, 5)) # [0. 0.25 0.5 0.75 1. ]ชนิดข้อมูล
อาร์เรย์ NumPy ทุกอาร์เรย์มี dtype เพียงชนิดเดียว ชนิดข้อมูลที่ใช้บ่อย ได้แก่ int32, int64, float32, float64, bool, complex128
import numpy as np
a = np.array([1, 2, 3]) # int64 by default
b = np.array([1.0, 2.0]) # float64
c = np.array([1, 2], dtype=np.float32)
print(a.dtype) # int64
print(c.dtype) # float32รูปร่างอาร์เรย์และจำนวนมิติ
shape คือลำดับทูเพิลที่ระบุขนาดของแต่ละมิติ ndim คือจำนวนมิติ และ size คือจำนวนสมาชิกทั้งหมด
import numpy as np
m = np.ones((3, 4))
print(m.shape) # (3, 4)
print(m.ndim) # 2
print(m.size) # 12
print(m.dtype) # float64การเปลี่ยนรูปร่าง
reshape() ส่งคืนมุมมองที่มีรูปร่างใหม่ โดยใช้ข้อมูลชุดเดิม ส่วน flatten() ส่งคืนสำเนาเป็นอาร์เรย์ 1 มิติ
import numpy as np
arr = np.arange(12)
mat = arr.reshape(3, 4)
print(mat)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print(mat.flatten()) # [ 0 1 2 3 ...]การแปลงชนิดข้อมูล
ใช้ arr.astype(dtype) เพื่อแปลงอาร์เรย์เป็นชนิดข้อมูลอื่น การดำเนินการนี้จะส่งคืนสำเนาเสมอ
import numpy as np
arr = np.array([1, 2, 3])
float_arr = arr.astype(np.float64)
print(float_arr) # [1. 2. 3.]
print(float_arr.dtype) # float64อาร์เรย์สุ่ม
สร้างอาร์เรย์สุ่มด้วย np.random ได้ทั้งการแจกแจงแบบสม่ำเสมอ แบบปกติ และจำนวนเต็ม
import numpy as np
rng = np.random.default_rng(seed=42) # reproducible
print(rng.random(5)) # 5 uniform [0,1)
print(rng.standard_normal(3)) # 3 normal(0,1)
print(rng.integers(1, 10, 4)) # 4 ints [1,10)การตรวจสอบหน่วยความจำของอาร์เรย์
itemsize ระบุจำนวนไบต์ต่อสมาชิก ส่วน nbytes ระบุจำนวนไบต์ทั้งหมด
import numpy as np
arr = np.zeros(1_000_000, dtype=np.float64)
print(arr.itemsize) # 8
print(arr.nbytes) # 8_000_000 (8 MB)
small = arr.astype(np.float32)
print(small.nbytes) # 4_000_000 (4 MB)np.empty และ np.full
np.empty จัดสรรหน่วยความจำโดยไม่กำหนดค่าเริ่มต้น จึงทำงานได้รวดเร็ว ส่วน np.full เติมค่าคงที่ให้สมาชิกทั้งหมด
import numpy as np
e = np.empty((2,3)) # uninitialised — random garbage values
f = np.full((2,3), fill_value=7)
print(f)
# [[7 7 7]
# [7 7 7]]สำเนากับมุมมอง
การตัดแบ่งอาร์เรย์ NumPy จะส่งคืนมุมมองโดยไม่สร้างสำเนา การแก้ไขมุมมองจึงแก้ไขอาร์เรย์ต้นฉบับด้วย ใช้ .copy() หากต้องการอาร์เรย์ที่เป็นอิสระ
import numpy as np
arr = np.array([1, 2, 3, 4])
view = arr[1:3]
view[0] = 99
print(arr) # [ 1 99 3 4] — original changed!
copy = arr[1:3].copy()
copy[0] = 0
print(arr) # unchangedอาร์เรย์แบบมีโครงสร้าง
อาร์เรย์แบบมีโครงสร้างจัดเก็บข้อมูลต่างชนิดกัน (คล้าย struct ของ C) ไว้ใน ndarray เดียว โดยมีฟิลด์ที่ตั้งชื่อได้
import numpy as np
dt = np.dtype([('name', 'U10'), ('age', np.int32), ('score', np.float64)])
people = np.array([
('Alice', 30, 95.5),
('Bob', 25, 87.3),
], dtype=dt)
print(people['name']) # ['Alice' 'Bob']ตรวจสอบอย่างรวดเร็ว
arr.reshape(3, 4) ส่งคืนอะไร
สรุปทบทวน
ndarray ของ NumPy เป็นอาร์เรย์ที่มีชนิดข้อมูลตายตัวและใช้หน่วยความจำต่อเนื่อง แอตทริบิวต์สำคัญ ได้แก่ shape, dtype, ndim และ nbytes การตัดแบ่งจะส่งคืนมุมมอง หากต้องการความเป็นอิสระให้ใช้ .copy() เลือกชนิดข้อมูลที่เล็กที่สุดเท่าที่เพียงพอเพื่อประหยัดหน่วยความจำ
คำถามที่พบบ่อย
บทเรียน “อาร์เรย์ NumPy และ dtypes” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อาร์เรย์ NumPy และ dtypes” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อาร์เรย์ NumPy และ dtypes”
สร้าง ndarray ทำความเข้าใจ dtypes และสำรวจคุณสมบัติของอาร์เรย์ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “อาร์เรย์ NumPy และ dtypes” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อาร์เรย์ NumPy และ dtypes
- การดำเนินการกับอาร์เรย์และการกระจายมิติ
- การใช้ดัชนี การตัดแบ่ง และการใช้ดัชนีขั้นสูง
- พีชคณิตเชิงเส้นด้วย NumPy