Thep Excel

numpy arrayสร้าง ndarray จากข้อมูลที่มีอยู่แล้ว

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

>_
np.array(object, dtype)

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

อัปเดต 31 May 2026

Syntax & Arguments

คืนค่าndarray

คืนเป็น NumPy ndarray ครับ เอาไปทำ vectorized operations ได้ทันที บวก ลบ คูณ หาร เปรียบเทียบ หรือส่งเข้าฟังก์ชัน NumPy อื่นต่อไปได้เลย

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
object array_like ข้อมูล input ที่จะแปลงเป็น ndarray เช่น list, tuple, nested list หรือ array อื่น
[dtype]ไม่บังคับ dtype None ชนิดข้อมูลที่ต้องการ เช่น np.float64, np.int32 ถ้าไม่ใส่ NumPy จะเดาจาก input อัตโนมัติ
[ndmin]ไม่บังคับ int 0 จำนวน dimension ขั้นต่ำของ array ที่ได้ออกมา ถ้า input มีน้อยกว่าจะเพิ่ม axis ให้อัตโนมัติ
[copy]ไม่บังคับ bool True ถ้าเป็น True จะ copy ข้อมูลเสมอ ถ้า False จะ reuse memory เดิมถ้าเป็นไปได้ — ใช้ False เมื่อต้องการประหยัด memory

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

Additional Notes

np.array คือฟังก์ชันแรกที่ผมต้องรู้จักเวลาเริ่มใช้ NumPy ครับ มันเป็น constructor พื้นฐานที่แปลง Python list (หรือ nested list สำหรับ 2D) ให้กลายเป็น ndarray — โครงสร้างข้อมูลหลักของ NumPy ที่เก็บข้อมูลชนิดเดียวกันทั้งหมดแบบ contiguous ใน memory ทำให้คำนวณได้เร็วกว่า list ธรรมดามากครับ

ส่วนที่ทำให้ ndarray เด่นกว่า list คือ vectorized operations ผมเขียน arr * 2 บรรทัดเดียว ทุกตัวเลขใน array คูณ 2 พร้อมกันเลย ถ้าใช้ list ต้อง list comprehension หรือ for loop แทน นอกจากนี้ยังระบุ dtype ได้ตั้งแต่ตอนสร้าง เพื่อควบคุม memory และ precision ตามต้องการ

ที่เจ๋งคือ np.array รองรับ nested list ได้เลย — แค่ส่ง list ซ้อน list เข้าไปก็ได้ 2D array (matrix) ออกมาทันที NumPy จัดการ shape ให้อัตโนมัติ ไม่ต้องประกาศขนาดก่อน ✨

ส่วนตัวผมใช้ np.array บ่อยมากตอนรับข้อมูลจากภายนอก เช่น CSV หรือ API แล้วอยากเอามาคำนวณเลย — แปลงเป็น array ก่อน แล้วที่เหลือทำ vectorized ได้หมดเลยครับ 😎

Examples

ตัวอย่างที่ 1: สร้าง 1D array จาก list ธรรมดาnp.array([10, 20, 30, 40, 50])

ผมส่ง Python list เข้าไปตรงๆ ได้ ndarray 1 มิติออกมาเลยครับ ง่ายมาก แค่ห่อ list ด้วย np.array() เท่านี้ก็พร้อมทำ vectorized operations ได้แล้ว

>_
np.array([10, 20, 30, 40, 50])

ผลลัพธ์[10 20 30 40 50]
ตัวอย่างที่ 2: สร้าง 2D array จาก nested listnp.array([[1, 2, 3], [4, 5, 6]])

ผมส่ง list ซ้อน list (2 แถว 3 คอลัมน์) เข้าไป NumPy จัดการ shape ให้อัตโนมัติเลยครับ ได้ matrix 2×3 ออกมา ใช้บ่อยมากตอนสร้างข้อมูลทดสอบหรือแปลงตารางจาก CSV

>_
np.array([[1, 2, 3], [4, 5, 6]])

ผลลัพธ์[[1 2 3]
[4 5 6]]
ตัวอย่างที่ 3: ระบุ dtype เป็น floatnp.array([1, 2, 3, 4], dtype=float)

ถ้า input เป็นเลขจำนวนเต็มแต่อยากได้ float ผมใส่ dtype=float เข้าไปเลยครับ NumPy แปลงทุกตัวให้เป็น float64 อัตโนมัติ ใช้บ่อยตอนจะทำหาร หรือส่งเข้าฟังก์ชันที่ต้องการ float

>_
np.array([1, 2, 3, 4], dtype=float)

ผลลัพธ์[1. 2. 3. 4.]
ตัวอย่างที่ 4: vectorized operation — ทำไม ndarray ถึงดีกว่า listarr * 2

นี่คือเหตุผลหลักที่ผมใช้ NumPy ครับ เขียน arr * 2 บรรทัดเดียว ทุกตัวเลขคูณ 2 พร้อมกันเลย ถ้าเป็น list ธรรมดาต้องเขียน [x * 2 for x in lst] แทน ยิ่งข้อมูลใหญ่ vectorized operations เร็วกว่ามากครับ

>_
arr * 2

ผลลัพธ์[ 20 40 60 80 100]

FAQs

ต่างจาก Python list ยังไง ทำไมต้องแปลงเป็น ndarray?+

ต่างกันที่ประสิทธิภาพและความสะดวกครับ list ใน Python เก็บข้อมูลต่างชนิดกันได้และเข้าถึงแบบ random แต่ ndarray เก็บชนิดเดียวกันทั้งหมดแบบ contiguous ใน memory ทำให้ vectorized ops เร็วกว่ามากๆ และที่สำคัญ arr * 2 ใช้ได้เลยโดยไม่ต้อง loop ครับ ผมแทบไม่ใช้ list เลยพอเริ่มทำ numerical work

np.array กับ np.asarray ควรใช้ตัวไหน?+

ถ้า input เป็น list หรือ tuple ใช้ตัวไหนก็ได้ผลเหมือนกันครับ แต่ถ้า input เป็น ndarray อยู่แล้ว — np.array จะ copy ข้อมูลเสมอ ส่วน np.asarray จะ reuse memory เดิม ผมเลยใช้ np.asarray เป็น default ตอนเขียนฟังก์ชันที่รับ input ได้หลายรูปแบบ ประหยัด memory กว่าครับ

nested list ไม่เท่ากันได้ไหม เช่น [[1,2], [3,4,5]]?+

ได้ครับแต่ NumPy จะสร้างเป็น array ชนิด object แทน dtype=object ไม่ใช่ array ตัวเลขปกติ ทำให้ vectorized operations ส่วนใหญ่ใช้ไม่ได้ ผมแนะนำให้ทำให้แถวยาวเท่ากันก่อนครับ ถ้าข้อมูลไม่เท่ากันจริงๆ ให้ใช้ pandas แทนจะเหมาะกว่า

Resources & Related

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

ฟังก์ชันนี้numpy arrayCreation
Creation (3)
numpy arange

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

numpy linspace

np.linspace ใน NumPy ผมใช้สำหรับสร้าง array ของตัวเลขที่กระจายเท่ากันระหว่างค่าเริ่มต้นและค่าสิ้นสุด โดยกำหนดจำนวน point ที่ต้องการพอดี แทนที่จะกำหนด step เหมาะมากสำหรับสร้างแกน x ของกราฟหรือสร้างชุดค่าทดสอบที่ต้องการความแม่นยำสูงครับ

numpy zeros

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

Transform (2)
numpy reshape

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

numpy unique

np.unique ใช้หาค่าที่ไม่ซ้ำกันใน array แล้วเรียงจากน้อยไปมากให้อัตโนมัติ คล้ายกับฟังก์ชัน UNIQUE ใน Excel 365 มากครับ ยังนับความถี่แต่ละค่าได้ด้วยถ้าใส่ return_counts=True

Combine (1)
numpy concatenate

np.concatenate ใช้ต่อ array หลายชุดเข้าด้วยกันตามแกนที่กำหนด คล้ายกับที่ pd.concat ทำกับ DataFrame แต่เป็น NumPy version ที่เร็วกว่าและเหมาะกับข้อมูลตัวเลขล้วนๆ ครับ

Comments

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