Thep Excel

numpy zerosสร้าง array เต็มไปด้วยเลข 0 ตามขนาดที่กำหนด

np.zeros ใน NumPy ผมใช้สำหรับสร้าง array ที่เต็มไปด้วยค่า 0 ทุกช่อง คล้ายกับการ “จองที่” ไว้ก่อนแล้วค่อยเติมข้อมูลทีหลัง ใช้บ่อยมากตอน AI ต้องเตรียม array ว่างไว้รับผลลัพธ์หรือสร้าง weight matrix เริ่มต้นครับ

>_
np.zeros(shape, dtype)

ความนิยม5/10
ความยาก3/10
ประโยชน์5/10

อัปเดต 31 May 2026

Syntax & Arguments

คืนค่าndarray

คืนเป็น NumPy ndarray ครับ เอาไปคำนวณ vectorized ได้ทันที หรือเติมค่าทีละช่องด้วย index ก็ได้ ถ้าต้อง reshape เป็น dimension อื่นต่อก็ .reshape() ได้เลย

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
shape int | tuple[int, …] ขนาดของ array ถ้าเป็น int เดียวได้ 1D array เช่น np.zeros(5) ถ้าเป็น tuple ได้ multi-dimensional เช่น np.zeros((2, 3)) ได้ array 2 แถว 3 คอลัมน์
[dtype]ไม่บังคับ dtype float64 ชนิดข้อมูลของ array ค่า default คือ float64 (ทศนิยม) ถ้าต้องการจำนวนเต็มใส่ dtype=int หรือ dtype=np.int32 ได้เลย

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

np.zeros คือฟังก์ชันสร้าง array ที่ผมเห็นในโค้ด AI/ML แทบทุกไฟล์ครับ 😎

ฟังก์ชันนี้รับ shape (ขนาดของ array) แล้วคืน ndarray ที่ทุกช่องมีค่าเป็น 0.0 (float64 โดย default) ถ้าอยากได้เลขจำนวนเต็มก็ใส่ dtype=int เพิ่มได้เลย ใช้ได้กับทั้ง 1D, 2D, และ array หลาย dimension

ที่เจ๋งคือ np.zeros เหมาะมากสำหรับ “จองที่” — ผมสร้าง array ว่างขนาดที่ต้องการไว้ก่อน แล้วค่อยเติมค่าจริงทีหลังในลูป แทนที่จะ append ทีละตัวซึ่งช้ากว่ามาก เป็นเทคนิคที่โค้ด AI ใช้เยอะมากครับ

ส่วนตัวผมมักเจอ np.zeros ในโค้ด Machine Learning ตอนสร้าง weight matrix หรือ bias เริ่มต้น หรือตอนเตรียม output array ก่อน fill ค่า prediction ครับ

Examples

ตัวอย่างที่ 1: สร้าง array 1D ขนาด 5 ช่องnp.zeros(5)

ผมส่ง shape=5 เข้าไป ได้ array 1D ที่มี 5 ช่องทุกช่องเป็น 0.0 ครับ สังเกตว่าเป็น float64 (มีจุดทศนิยม) เป็น default เหมาะสำหรับงานคำนวณทั่วไป

>_
np.zeros(5)

ผลลัพธ์[0. 0. 0. 0. 0.]
ตัวอย่างที่ 2: สร้าง array 2D ขนาด 2 แถว 3 คอลัมน์np.zeros((2, 3))

คราวนี้ผมใส่ tuple (2, 3) เพื่อสร้าง array 2 มิติ ได้ matrix 2 แถว 3 คอลัมน์ ทุกช่องเป็น 0.0 ครับ คิดเหมือนตาราง Excel ว่างๆ ขนาด 2×3 ที่รอให้เราเติมข้อมูล

>_
np.zeros((2, 3))

ผลลัพธ์[[0. 0. 0.]
[0. 0. 0.]]
ตัวอย่างที่ 3: สร้าง array จำนวนเต็มด้วย dtype=intnp.zeros(4, dtype=int)

ใส่ dtype=int ทำให้ได้ array ของเลข 0 แบบจำนวนเต็มครับ ไม่มีทศนิยม ผมใช้แบบนี้ตอนต้องการ array นับจำนวน เช่น นับความถี่หรือเก็บ index ต่างๆ

>_
np.zeros(4, dtype=int)

ผลลัพธ์[0 0 0 0]
ตัวอย่างที่ 4: จองที่ array แล้วเติมค่าทีหลังresult[2]

ผมสร้าง array zeros ไว้ก่อนแล้วเข้าถึงได้ด้วย index ครับ pattern นี้ใช้บ่อยมากในโค้ด AI — สร้าง np.zeros ขนาดที่ต้องการ แล้ววนลูปเติมค่าทีละช่อง แทนที่จะ append ซึ่งสร้าง array ใหม่ทุกรอบและช้ากว่ามาก

>_
result[2]

FAQs

np.zeros กับ np.empty ต่างกันยังไง?+

ต่างกันที่การรับประกันค่าครับ np.zeros รับประกันว่าทุกช่องเป็น 0 เสมอ ส่วน np.empty แค่ 'จองหน่วยความจำ' โดยไม่ล้างค่าเดิม เลยเร็วกว่านิดหน่อย แต่ค่าในแต่ละช่องอาจเป็นอะไรก็ได้ (ขยะจากหน่วยความจำ) ผมแนะนำให้ใช้ np.zeros ตลอดครับ ปลอดภัยกว่ามาก ความต่างด้านความเร็วเล็กน้อยไม่คุ้มกับบัก

ทำไม np.zeros(5) ถึงได้ float แทนที่จะเป็น int?+

เพราะ NumPy ออกแบบมาสำหรับงานคณิตศาสตร์และ machine learning ครับ ซึ่งส่วนใหญ่ต้องการทศนิยม default เป็น float64 จึงตอบโจทย์ได้กว้างกว่า ถ้าต้องการ int ก็ใส่ dtype=int เพิ่มได้เลย ผมมักเจอปัญหานี้ตอนทำ array index หรือ count ครับ อย่าลืมใส่ dtype=int ตอนนั้น

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ numpy zeros จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้numpy zerosCreation
Creation (2)
numpy arange

np.arange ใน NumPy ผมใช้สำหรับสร้าง array ของเลขที่เรียงกันตามช่วงที่กำหนด คล้ายกับ range() ใน Python แต่ได้ผลออกมาเป็น ndarray ที่เอาไปคำนวณทางคณิตศาสตร์ต่อได้ทันที ใช้บ่อยมากตอนสร้างแกน x สำหรับกราฟหรือสร้างชุดตัวเลขทดสอบครับ

numpy array

np.array คือประตูหน้าบ้านของ NumPy ครับ ผมใช้มันแปลง Python list หรือ nested list ให้กลายเป็น ndarray ที่ทำ vectorized operations ได้ทันที โดยไม่ต้องวน loop เองเลยแม้แต่บรรทัดเดียว

Transform (1)
numpy reshape

arr.reshape ใน NumPy ผมใช้สำหรับเปลี่ยนรูปร่าง (shape) ของ array โดยจำนวนสมาชิกทั้งหมดยังคงเดิม เช่น แปลง 1D array 12 ตัวให้กลายเป็น matrix 3×4 ได้ทันที โดยไม่ต้องสร้างข้อมูลใหม่ครับ

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่